No data inserted into database. Am I wrongdoing it?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
polly89
Forum Newbie
Posts: 8
Joined: Thu Mar 18, 2010 9:44 am

No data inserted into database. Am I wrongdoing it?

Post by polly89 »

I have a form named:"RegistrationForm.php". when i click the "submit button", there's a data inserted in the database (the prove is, there a new row in the database),
but there's no value from user textfield(ic_no,name,email...) that have been inserted.
It means like there's a row of data inserted but without value..

p/s- however, when i click the submit button, it successfully directed me to the "BookingForm.php" with all the session value...it's just that there's no data inserted into the database.

can someone straighten this up for me? am i doing wrong with the coding with the submit button?
here's the code

Code: Select all

<?php
session_start();
$_SESSION['ic_no']=$ic_no;
$_SESSION['name']=$name;
$_SESSION['address']=$address;
$_SESSION['tel_no']=$tel_no;
$_SESSION['email']=$email;
?>


<html>
<body>

<form action="BookingForm.php" method="post">
  <p><strong>REGISTRATION FORM</strong></p>
  <table width="285" border="1">
    <tr>
      <th width="120" scope="row">Ic No :</th>
      <td width="149"><label>
        <input type="text" name="ic_no" id="ic_no" value="<?php $ic_no; ?>">
      </label></td>
    </tr>
    <tr>
      <th scope="row">Name :</th>
      <td><label>
        <input type="text" name="name" id="name" value="<?php $name; ?>">
      </label></td>
    </tr>
    <tr>
      <th scope="row">Address :</th>
      <td><label>
        <input type="text" name="address" id="address" value="<?php $address; ?>" >
      </label></td>
    </tr>
    <tr>
      <th scope="row">Contact No :</th>
      <td><label>
        <input type="text" name="tel_no" id="tel_no" value="<?php $tel_no; ?>">
      </label></td>
    </tr>
    <tr>
      <th scope="row">Email :</th>
      <td><label>
        <input type="text" name="email" id="email"  value="<?php $email; ?>">
      </label></td>
    </tr>
  </table>
  <input type="submit" name="submit" id="submit" value="Submit">
  <?php
$con = mysql_connect("localhost","root","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ambos", $con);

mysql_query("INSERT INTO customer (ic_no, name, address, tel_no, email)
VALUES ('$_POST[ic_no]', '$_POST[name]', '$_POST[address]','$_POST[tel_no]','$_POST[email]')");
mysql_close($con);

</form>
 </body>
</html>
any ideas is really appreciated
rahulzatakia
Forum Commoner
Posts: 59
Joined: Fri Feb 05, 2010 12:01 am
Location: Ahmedabad

Re: No data inserted into database. Am I wrongdoing it?

Post by rahulzatakia »

Just try out the following code.. you just need to give form action name same as your page name or keep the action as blank...

<?php
if(isset($_POST['submit']))
{
session_start();
$_SESSION['ic_no']=$_POST['ic_no'];
$_SESSION['name']=$_POST['name'];
$_SESSION['address']=$_POST['address'];
$_SESSION['tel_no']=$_POST['tel_no'];
$_SESSION['email']=$_POST['email'];

$con = mysql_connect("localhost","root","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("ambos", $con);

mysql_query("INSERT INTO customer (ic_no, name, address, tel_no, email)
VALUES ('$_POST[ic_no]', '$_POST[name]', '$_POST[address]','$_POST[tel_no]','$_POST[email]')");
mysql_close($con);
}
?>


<html>
<body>

<form action="BookingForm.php" method="post">
<p><strong>REGISTRATION FORM</strong></p>
<table width="285" border="1">
<tr>
<th width="120" scope="row">Ic No :</th>
<td width="149"><label>
<input type="text" name="ic_no" id="ic_no" value="<?php $ic_no; ?>">
</label></td>
</tr>
<tr>
<th scope="row">Name :</th>
<td><label>
<input type="text" name="name" id="name" value="<?php $name; ?>">
</label></td>
</tr>
<tr>
<th scope="row">Address :</th>
<td><label>
<input type="text" name="address" id="address" value="<?php $address; ?>" >
</label></td>
</tr>
<tr>
<th scope="row">Contact No :</th>
<td><label>
<input type="text" name="tel_no" id="tel_no" value="<?php $tel_no; ?>">
</label></td>
</tr>
<tr>
<th scope="row">Email :</th>
<td><label>
<input type="text" name="email" id="email" value="<?php $email; ?>">
</label></td>
</tr>
</table>
<input type="submit" name="submit" id="submit" value="Submit">

</form>
</body>
</html>
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: No data inserted into database. Am I wrongdoing it?

Post by califdon »

Your code is writing to the database before the form has been submitted, so there is nothing for it to put in the record. If you are going to use the same script to display the form AND insert the record in the table (and that's just fine, but it's not the only way), then you must write your code so that the script executes TWICE, once to display the form and again when the form has been submitted, to insert the record. You can do that by testing whether there is any data to insert, and branch to one of those 2 logical actions, as in the code that rahulzatakia suggested. Do you see, right near the beginning of his code, the if(isset($_POST['submit']))? That's where he tests whether it should insert a record (if there IS data) or display a blank form (if there is NO data).
Post Reply