Throw in Some Forms
We've managed to get data from a database without much difficulty. But what about sending data the
other way? It's not a problem with PHP.
First let's create a page with a simple form.
<html>
<body>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
</body>
</html>
Note the use of $PHP_SELF again. Like I said in Lesson 1, you can use PHP anywhere inside your HTML
code. You'll also notice that each form element matches the field name in the database. This is not
compulsory; it's just a good idea so you can get your head around your code later on.
Also notice that I've given the Submit button a name attribute. I've done this so I can test for the
existence of a $submit variable. That way, when the page is called again, I'll know whether someone used
this form.
I should mention that you don't have to have a page that loops back on itself. You can span two, three, or
more pages, if you like. This way everything stays compact.
OK, let's add some code that will check for the form input. Just to prove that the form input does make it
through, I'll dump all the variables to the screen with $HTTP_POST_VARS. This is a useful debugging
feature. If you ever need to see all the variables on a page, use $GLOBALS.
<html>
<body>
<?php
if ($submit) {
// process form
while (list($name, $value) = each($HTTP_POST_VARS)) {
echo "$name = $value<br>\n";
}
} else{
// display form
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
} // end if
?>
</body>
</html>
Now that this is looking good, let's take the form information and post it to the database.
<html>
<body>
<?php
if ($submit) {
// process form
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "INSERT INTO employees (first,last,address,position) VALUES
('$first','$last','$address','$position')";
$result = mysql_query($sql);
echo "Thank you! Information entered.\n";
} else{
// display form
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
} // end if
?>
</body>
</html>
You've now inserted data into the database. It's still far from perfect. What if someone leaves a field blank
or enters text when we want a numeric entry? What if there's an error somewhere?
Don't worry. We'll get to that.
0 Comments:
Post a Comment