Page 1 of 1

No data inserted into database. Am I wrongdoing it?

Posted: Mon Mar 29, 2010 6:52 am
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

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

Posted: Mon Mar 29, 2010 7:48 am
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>

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

Posted: Mon Mar 29, 2010 2:30 pm
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).