文章教程

13.4.2根据表单内容修改数据库数据

9/17/2020 9:26:54 PM 人评论 次浏览

13.4.2 根据表单内容修改数据库数据

通过程序数据修改数据库数据,和通过程序向数据库插入数据类似。从程序角度看,一个是通过PHP程序执行插入操作(INSERT语句),另外一个是执行更新操作(UPDATE语句)。

通过PHP程序实现更新操作,首先需要一个显示数据的Web页面。另外,要根据不同的URL参数,该Web页面显示不同用户的信息,因此,该页面应该由内嵌在HTML文档中的PHP程序完成。然后,在这个页面修改用户数据,最后提交表单,由程序完成数据库数据的修改。代码13-11用来在Web页面显示用户数据,它由内嵌PHP代码的HTML文档实现,并在其中实现了用户信息的更新。该页面和代码13-9所示的提交用户信息的页面几乎完全一样,只是该页面根据URL参数,将不同的用户数据显示在页面的表单元素里。

代码13-11 显示用户信息的页面13-11.php


01 <?php

02 $host='localhost';//定义服务器

03 $user_name='root';//定义用户名

04 $password='admin';//定义密码

05

06 //页面中的城市列表将有数组生成

07 $arr_city=array('Beijing'=>'北京','NewYork'=>'纽约','Paris'=>'巴黎','London'=>'伦敦','Rome'=>'罗马');

08

09 $conn=mysql_connect($host,$user_name,$password);//连接MySQL

10 if(!$conn)

11 {

12 die('数据库连接失败:'.mysql_error());

13 }

14 mysql_select_db('test');//选择数据库

15

16 if(!isset($_GET['uid']))//获取所要显示数据的用户的id

17 {

18 echo'参数错误!';

19 exit;

20 }

21 $id=$_GET['uid'];

22

23 $sql="select*from users where id=$id";

24 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql);

25 if(!mysql_num_rows($result))

26 {

27 echo'用户ID错误!';

28 exit;

29 }

30

31 $row=mysql_fetch_array($result);

32

33 $name=$_POST['user_name'];

34 $city=$_POST['city'];

35 if(!empty($name)||trim($name)!='')//当页面有POST数据传入时,则修改数据库数据

36 {

37 $sql="update users set name='".$name."',city='".$city."'where id=$id";

38 mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql);

39 mysql_close($conn);

40

41 echo'数据修改成功,打开<a href="13-7.php">13-7.php</a>查看数据';

42 exit;

43 }

44 ?>

45

46 <html>

47 <head>

48 <title>13-11.php</title>

49 </head>

50

51 <body>

52 <b>修改用户信息</b>

53 <form name="form"method="post"action="13-11.php?uid=<?php echo$id;?>">

54 <table width="75%"border="0"cellpadding="0"cellspacing="2">

55 <tr>

56 <td width="24%"height="29">用户名:</td>

57 <td width="76%"><input name="user_name"type="text"id="user_name"size="20"

58 value="<?php echo$row['name'];?>"></td>

59 </tr>

60 <tr>

61 <td height="25">来自城市:</td>

62 <td>

63 <select name="city">

64 <?php

65 //通过数组循环,生成页面上城市选项的下拉列表

66 foreach($arr_city as$k=>$v)

67 {

68 //这里根据字段的值和数组中的索引值,使用三目运算符?:做用户来自哪个城市的判断,

69 //如果city字段的值和数组循环中的某个城市的索引值相等,则将用户的城市在下拉列表中选中

70 $option=($row['city']==$k)?'<option value="'.$k.'"selected>'.$v.'</option>':

71 '<option value="'.$k.'">'.$v.'</option>';

72 echo$option.'\n';

73 }

74 ?>

75 </select>

76 </td>

77 </tr>

78 <tr>

79 <td>注册时间:</td>

80 <td><?php echo$row['created_time'];?></td>

81 </tr>

82 <tr>

83 <td height="31">

84 <input type="submit"name="Submit"value="修改"></td>

85 <td> </td>

86 </tr>

87 </table>

88 </form>

89 </body>

90 </html>


【代码解析】这段程序既实现了向Web页面显示某一用户的数据,同时也完成了根据页面传入的数据,修改数据库中对应用户的信息。更新操作成功后,代码13-11会显示一个信息,并给出到13-7.php的链接,以便验证更新操作是否成功并且正确。代码13-11显示用户数据的效果如图13-12所示。读者要注意页面URL中传递过来的参数$_GET['uid']。

图 13-12 用户信息修改界面

教程类别