PHP/MySQL三日通(6)

澳门新葡亰3522平台游戏,五、修改数据

六、完整的程序

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

在本课结束前,我们要把所有东西加入到一个程序中,使它具有增加、编辑修改、删除记录的功能。这是前面所有内容的一个延伸,也可以作为极好的复习方法。看看下面的程序。

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

htmlbody?php$db = mysql_connect(localhost, root);mysql_select_db(mydb,$db);if ($submit) {// 如果没有ID,则我们是在增加记录,否则我们是在修改记录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);}// 向数据库发出SQL命令$result = mysql_query($sql);echo 记录修改成功!p;} elseif ($delete) {// 删除一条记录$sql = DELETE FROM employees WHERE id=$id;$result = mysql_query($sql);echo 记录删除成功!p;} else {// 如果我们还没有按submit按钮,那么执行下面这部分程序if (!$id) {// 如果不是修改状态,则显示员工列表 $result = mysql_query(SELECT * FROM employees,$db);while ($myrow = mysql_fetch_array($result)) {printf(a href=/%s?id=%s/%s %s/a n,$PATH_INFO, $myrow[id], $myrow[first], $myrow[last]);printf(a href=/%s?id=%sdelete=yes/(DELETE)/abr, $PATH_INFO, $myrow[id]);}}?Pa href=?php echo $PATH_INFO?ADD A RECORD/aPform method=post action=?php echo $PATH_INFO??phpif ($id) {// 我们是在编辑修改状态,因些选择一条记录$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];// 显示id,供用户编辑修改?input type=hidden name=id value=?php echo $id ??php}?名:input type=Text name=first value=?php echo $first ?br姓:input type=Text name=last value=?php echo $last ?br住址:input type=Text name=address value=?php echo $address ?br职位:input type=Text name=position value=?php echo $position ?brinput type=Submit name=submit value=输入信息/form?php}?/body`/html

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

这段程序看起来很复杂,但实际上并不难。程序主要有三个部分。第一个if()语句检查我们是否已经按下了那个输入信息的数据提交按钮。如果是,程序再检查$id是否存在。如果不存在,那我们就是在增加记录状态,否则,我们是在修改记录状态。