Reputation: 438
I'm having a slight problem I'm trying to insert data into a mysql
database but when I add the data in the input box
the record shows up as a blank entry
, where am I going wrong. Thanks team.
My code is as follows:
This is my index file
File name: index.php
<?php
// link to the page where the database is being connected
require_once('php/db_connection.php');
// set up your query within a variable to make it easier to work with
$query = "SELECT * FROM people"; //this will select everything out of our database(artificial_test1) from the 'people' table.
$result = mysql_query($query); //this will conect to the database and select the table to run the query on and return the values from that table.
// now we will set up a while loop to retrieve the information from the database table.
while ($person = mysql_fetch_array($result)) {
echo "<h3>". $person['name'] ."</h3>"; // this line will fetch the query result that is stored in the $person variable and find the row ['name'] and display it on screen
echo "<p>". $person['info'] ."</p>";
}
?>
<!-- below we will set up a form to add users to the database -->
<h1>Create a user</h1>
<form action="create_user.php" method="post">
<label for="">Name</label><input type="text" name"name"><br />
<label for="">user info</label><input type="text" name"info">
<br />
<input type="submit" name="submit" value="submit">
</form>
This is create user file:
File name: create_user.php
<?php
include ('php/db_connection.php');
$name = $_POST['name'];
$info = $_POST['info'];
if (!$_POST['submit']) {
echo "please fill out the form";
header('Location: index.php');
}else{
mysql_query("INSERT INTO people (`ID`, `name`, `info`) VALUES (NULL, '$name', '$info')") or die(mysql_error());
echo "User has been added!";
mysql_close();
header('Location: index.php');
}
?>
And this is my database connection file:
File name: db_connection.php
<?php
// set up variables relating to database connection
$db_host = 'localhost'; // this defines the type of server we are connecting to ie:. we are using localhost because we are using a local server to connect to.
$db_user = 'root'; // the user that you are using to log into the database with. default user in our case is 'root'.
$db_password = ''; // if there is a password on the database then that will go in this variable, but we dont have one on the local servers db so we set it to nothing.
$database = 'artificial_test1'; // this is where we select the database that we are going to use.
// this is where we connect to the database we use the php function mysql_connect.
// mysql_connect function will take 3 arguments inside the parentheses and will look like
// this ie:. mysql_connect(database host, database user, database password).
$connect_db = mysql_connect($db_host, $db_user, $db_password);
// now we have to select the database that we want to start using.
// For this we will make use of the php function mysql_select_db(database_name)
// which will take 1 argument which is the database_name we want to work with
mysql_select_db($database);
?>
Upvotes: 0
Views: 1023
Reputation: 537
there is problem in name attribute, you forgot add = sign
<label for="">Name</label><input type="text" name"name"><br />
<label for="">user info</label><input type="text" name"info">
should be
<label for="">Name</label><input type="text" name="name"><br />
<label for="">user info</label><input type="text" name="info"/>
Upvotes: 0
Reputation: 4035
at your form, name"name"
should be name="name"
and name"info"
should be name="info"
Upvotes: 1
Reputation: 34416
You forgot the equal signs in your input name attributes -
<label for="">Name</label><input type="text" name="name"><br />
<label for="">user info</label><input type="text" name="info">
In addition, you should switch from mysql to mysqli as the mysql function have been deprecated. You also need to protect yourself against possible SQL Injection Attacks
Upvotes: 4