php的修改

修改数据:

(1)如果不是有外键的表,那么修改就正常的进行修改页面和修改处理页面就可以,但是有了外键的表,在进行遍历时就要写相应的条件了。

例如,有张表中有性别,但是进行创建表时是用的0或1来表示的,用户要是进行修改时也不知道0或1代表了什么,所以这里就要进行处理,处理成用户能够明白的数据

1 foreach($arr as $v)
2     {
3         //修改性别
4         $sex = $v[4]? "":"";//如果返回true性别就是男,如果返回false性别就是女。
5         echo "{$sex}"//再输出中的索引号是4的,就要修改成定义的sex了

(2)民族因为是外键,这样的显示用户也是不明白的,所以除了要处理性别,还要处理民族

 1 <?php
 2     $db = new MySQLi("localhost","root","123","test3");
 3                 
 4     $sql = "select * from info";
 5                 
 6     $result = $db->query($sql);
 7     while($attr = $result->fetch_row())
 8    {
 9                 
10        $nation = $attr[3];
11        $sqln = "select name from nation where code='{$nation}'";    //进行sql语句查询民族表中的代号和民族一样的名称
12        $rn = $db->query($sqln);      //执行sql语句
13            $an = $rn->fetch_row();      
14                 
15        echo "{$a1[0]}"  //{$a1[0]}解析的这个就是遍历的民族名称
16 ?>

(3)进行修改页面,因为是修改,肯定会有默认值在上面:嵌入php语言,正常的修改页面,让表中的代号和定义的代号名相等

 1 $id=$_GET["id"];
 2 
 3 $db=new MySQLi("localhost","root","123456","text_0408");
 4 $sql="select * from zhuce where id='{$id}'"; 
 5 $result=$db->query($sql);
 6 $arr=$result->fetch_row();
 7 ?>
 8 <h1>修改</h1>
 9 <form action="xiugai.php" method="post">
10 <div><input type="hidden" name="id" value="<?php echo $arr[0]; ?>" /></div>
11 <div>用户名:<input type="text" name="yonghuming" value="<?php echo $arr[1]; ?>" /></div>
12 <div>密码:<input type="text" name="pwd" value="<?php echo $arr[2]; ?>" /></div>
13 <div>姓名:<input type="text" name="name" value="<?php echo $arr[3]; ?>" /></div>
14 <div>性别:
15 男<input type="radio" name="sex" value="1" <?php echo $arr[4]? "checked='checked'":"" ?> />
16 女<input type="radio" name="sex" value="0" <?php echo $arr[4]? "":"checked='checked'" ?> />
17 </div>
18 <div>
19 民族:
20 <select name="nation">
21 <?php
22 $sqln = "select * from nation";
23 $resultn = $db->query($sqln);
24 $arrn = $resultn->fetch_all();
25 foreach($arrn as $v)
26 {
27     $arr[5]; //该人员的民族代号
28     $v[0]; //即将造的option的民族代号
29     if($arr[5]==$v[0])
30     {
31         echo "<option selected='selected' value='{$v[0]}'>{$v[1]}</option>";
32     }
33     else
34     {
35         
36         
37         
38         echo "<option value='{$v[0]}'>{$v[1]}</option>";
39     }
40 }
41 ?>
42 </select>
43 </div>
44 <input type="submit" value="修改" />
45 </form>

你修改哪一项都有一个那个项的默认值。修改后他就会变成你修改的那个

 

原来她是女的现在改了以后变成男的了。

 

因为民族不止一个,可以显示所有的民族,让用户自己选择进行修改,这样就可以做个下拉菜单

 1 民族:
 2 <select name="nation">
 3 <?php
 4 $sqln = "select * from nation";
 5 $resultn = $db->query($sqln);
 6 $arrn = $resultn->fetch_all();
 7 foreach($arrn as $v)
 8 {
 9     $arr[5]; //该人员的民族代号
10     $v[0]; //即将造的option的民族代号
11     if($arr[5]==$v[0])
12     {
13         echo "<option selected='selected' value='{$v[0]}'>{$v[1]}</option>";
14     }
15     else
16     {
17         
18         
19         
20         echo "<option value='{$v[0]}'>{$v[1]}</option>";
21     }
22 }
23 ?>
24 </select>

我随便写的民族不要计较。主要是看效果就好。

(4)最后就是修改处理的页面了,这个页面sql的语句就是修改语句了,然后返回到主页面就可以了

 1 <?php
 2 $id=$_POST["id"];
 3 $yonghuming=$_POST["yonghuming"];
 4 $pwd=$_POST["pwd"];
 5 $name=$_POST["name"];
 6 $sex=$_POST["sex"];
 7 $biaohao=$_POST["nation"];
 8 
 9 
10 
11 
12 $db=new MySQLi("localhost","root","123456","text_0408");
13 $sql="update zhuce set yonghuming='{$yonghuming}', pwd='{$pwd}',name='{$name}',sex={$sex},biaohao='{$biaohao}' where id='{$id}'";
14 if($db->query($sql))
15 {
16     header("location:main.php")    ;//返回表页面。
17 }else{
18     
19         echo "修改失败";
20     }
21     
22 
23 
24 
25 
26 ?>

 

posted @ 2017-04-27 16:25  小牛吃青草  阅读(306)  评论(0编辑  收藏  举报