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 ?>