PHP,MySQL problem
| From: | Nicolai Elmqvist | Date: | Wed, 14 Jan 2004 12:14:09 +0000 |
| Subject: | PHP,MySQL problem | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-174531@lists.php.net to get a copy of this message | ||
Sorry, I should have done that from the beginning, but here it is. I have
looked further on the variables and it seams like the name attribute
"sumbit" (in the <form>) is not converted to the $submit variable when I
press the button. If I make a var_dump() in the beginning and end of the
code, $submit is set to NULL in both occations. The same goes with the rest
of the variables. It's like the conversion part is out of order, but where
can I fix that?
It is possible to update the database by setting the variables directly in
the code, so that is not the problem.
I have gone though my php.ini and httpd.conf files to see if there was any
mistakes. Found one but it didn't solve the problem.
Hope somebody can help.
Thanks!
The tutorial i have copied the code from can be found at:
http://hotwired.lycos.com/webmonkey/programming/php/tutorials/tutorial4.html
Here is the code for making the database if anyone would like to test it.
CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT,
first varchar(20), last varchar(20), address varchar(255), position
varchar(50), PRIMARY KEY (id), UNIQUE id (id));
Here is the script!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Index</title>
</head>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
if ($submit) {
// here if no ID then adding else we're editing
if ($id) {
$sql = "UPDATE employees SET
first='$first',last='$last',address='$address',position='$position'
WHERE
id=$id";
} else {
$sql = "INSERT INTO employees (first,last,address,position) VALUES
('$first','$last','$address','$position')";
}
// run SQL against the DB
$result = mysql_query($sql);
echo "Record updated/edited!<p>";
} elseif ($delete) {
// delete a record
$sql = "DELETE FROM employees WHERE id=$id";
$result = mysql_query($sql);
echo "$sql Record deleted!<p>";
} else {
// this part happens if we don't press submit
if (!$id) {
// print the list if there is not editing
$result = mysql_query("SELECT * FROM employees",$db);
while ($myrow = mysql_fetch_array($result)) {
printf("<a href=\"%s?id=%s\">%s %s</a> \n", $PHP_SELF,
$myrow["id"],
$myrow["first"], $myrow["last"]);
printf("<a
href=\"%s?id=%s&delete=yes\">(DELETE)</a><br>", $PHP_SELF,
$myrow["id"]);
}
}
?>
<P>
<a href="<?php echo $PHP_SELF?>">ADD A RECORD</a>
<P>
<form method="post" action="<?php echo $PHP_SELF?>">
<?php
if ($id) {
// editing so select a record
$sql = "SELECT * FROM employees WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$id = $myrow["id"];
$first = $myrow["first"];
$last = $myrow["last"];
$address = $myrow["address"];
$position = $myrow["position"];
// print the id for editing
?>
<input type=hidden name="id" value="<?php echo $id ?>">
<?php
}
?>
First name:<input type="Text" name="first" value="<?php echo $first
?>"><br>
Last name:<input type="Text" name="last" value="<?php echo $last
?>"><br>
Address:<input type="Text" name="address" value="<?php echo
$address
?>"><br>
Position:<input type="Text" name="position" value="<?php echo
$position
?>"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html>