Code
Code

Reputation: 438

mysql database entries showing up blank

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

Answers (3)

krish
krish

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

Alex Angelico
Alex Angelico

Reputation: 4035

at your form, name"name" should be name="name" and name"info" should be name="info"

Upvotes: 1

Jay Blanchard
Jay Blanchard

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

Related Questions