PHP/MySQL三日通(5)


五、修改数据

  在个教程中,我都把要执行的SQL语句放到一个变量($sql)中,然后才用mysql_query()来执行数据库查询。在调试时这是很有用的。如果程序出了什么问题,您随时可以把SQL语句的内容显示出来,检查其中的语法错误。

  我们已经学习了如何把数据插入到数据库中。现在我们来学习如何修改数据库中已有的记录。数据的编辑包括两部分:数据显示和通过表格输入把数据返回给数据库,这两部分我们前面都已经讲到了。然而,数据编辑还是有一点点不同,我们必须先在表格中显示出相关的数据。

  首先,我们回过头再看看第一课的程序代码,在网页中显示员工姓名。但是这次,我们要把数据显示在表格中。程序看起来象下面这样:

  <html>
<body>
<?php
$db = mysql_connect(\"localhost\", \"root\");
mysql_select_db(\"mydb\",$db);
if ($id) {
// 查询数据库
$sql = \"SELECT * FROM employees WHERE id=$id\";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<form method=\"post\" action=\"<?php echo $PATH_INFO?>\">
<input type=hidden name=\"id\" value=\"<?php echo $myrow[\"id\"] ?>\">
名:<input type=\"Text\" name=\"first\" value=\"<?php echo
$myrow[\"first\"] ?>\"><br>
姓:<input type=\"Text\" name=\"last\" value=\"<?php echo
$myrow[\"last\"] ?>\"><br>
住址:<input type=\"Text\" name=\"address\" value=\"<?php echo
$myrow[\"address\"] ?>\"><br>
职位:<input type=\"Text\" name=\"position\" value=\"<?php echo
$myrow[\"position\"] ?>\"><br>
<input type=\"Submit\" name=\"submit\" value=\"输入信息\">
</form>
<?php
} else {
// 显示员工列表
$result = mysql_query(\"SELECT * FROM employees\",$db);
while ($myrow = mysql_fetch_array($result)) {
printf(\"<a href=\\"%s?id=%s\\">%s %s</a><br>\n\", $PATH_INFO,
$myrow[\"id\"], $myrow[\"first\"], $myrow[\"last\"]);
}
}
?>
</body>
</html>

我们刚才是把字段内容写入到相应表格元素中的value属性里,这是相应简单的。我们再往前进一步,使程序可以把用户修改过的内容写回数据库去。同样,我们通过Submit按钮来判断是否处理表格输入内容。还要注意,我们用的SQL语句稍稍有些不同。

  <html>
<body>
<?php
$db = mysql_connect(\"localhost\", \"root\");
mysql_select_db(\"mydb\",$db);
if ($id) {
if ($submit) {
$sql = \"UPDATE employees SET first=\'$first\',last=\'$last\',
address=\'$address\',position=\'$position\' WHERE id=$id\";
$result = mysql_query($sql);
echo \"谢谢!数据更改完成\n\";
} else {
// 查询数据库
$sql = \"SELECT * FROM employees WHERE id=$id\";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<form method=\"post\" action=\"<?php echo $PATH_INFO?>\">
<input type=hidden name=\"id\" value=\"<?php echo $myrow[\"id\"] ?>\">
名:<input type=\"Text\" name=\"first\" value=\"<?php
echo $myrow[\"first\"] ?>\"><br>
姓:<input type=\"Text\" name=\"last\" value=\"<?php echo
$myrow[\"last\"] ?>\"><br>
住址:<input type=\"Text\" name=\"address\" value=\"<?php echo
$myrow[\"address\"] ?>\"><br>
职位:<input type=\"Text\" name=\"position\" value=\"<?php echo
$myrow[\"position\"] ?>\"><br>
<input type=\"Submit\" name=\"submit\" value=\"输入信息\">
</form>
<?php
}
} else {
// 显示员工列表
$result = mysql_query(\"SELECT * FROM employees\",$db);
while ($myrow = mysql_fetch_array($result)) {
printf(\"<a href=\\"%s?id=%s\\">%s %s</a><br>\n\", $PATH_INFO,
$myrow[\"id\"], $myrow[\"first\"], $myrow[\"last\"]);
}
}
?>
</body>
</html>

就是这样。在这个程序中已经包含了我们学过所大多数特性。您也已经看到,我们在一个if()条件判别语句中又加了一个if()语句,来检查多重条件。

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3