Linux 版 (精华区)

发信人: fgr (乱舞势力), 信区: Linux
标  题: 修改数据
发信站: 紫 丁 香 (Thu Jan 20 19:46:04 2000) WWW-POST

修改数据 
在个教程中,我都把要执行的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()语句,来检查多重条件。 

下面,我们要把所有东西全都加在一起,写出一个很好的程序来。>> 

--
看到五代说:"我喜欢的女孩...很会吃醋,任性,爱哭,易怒...但是,她的微笑...
            就是我最大的幸福..."
看到响子说:"我只要你答应我一件事;哪怕是一天,你一定要比我活得更久,我再也
            不要一个人孤孤单单的活下去了!"
总是很动情。 


※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: 202.118.233.21] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.077毫秒