• php数据访问之修改


    好吧,在数据访问中,修改查询删除增加,稍微复杂那么一点点,我就单独拿出来,强化记忆一下,毕竟是初学,理清和打实基础原理,对以后的学习还是有好处的。废话结束~

    用个简单例子  info表 和nation表  (先说一下,info和nation表有关联)

      1.首先,我们先写个php查询页面,来看一下这个表的样子

    代码:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>无标题文档</title>
     6 </head>
     7 
     8 <body>
     9 
    10 <table border="1px" cellpadding="0" cellspacing="0" width="60%">
    11     <tr>
    12         <td>代号</td>
    13         <td>姓名</td>
    14         <td>性别</td>
    15         <td>民族</td>
    16         <td>生日</td>
    17         <td>操作</td>
    18         
    19     </tr>
    20  <?php 
    21  $db=new MySQLi("localhost","root","","test_0306_1");
    22  $sql="select * from info ";
    23  $result=$db->query($sql);
    24  $attr=$result->fetch_all();
    25  foreach($attr as $v){
    26     $sex=$v[2]?"男":"女";                               //定义一个sex变量来判断,如果结果不为0(true)就赋值为男,反之则为女
    27     $sql1="select * from nation where code='{$v[3]}'"; //写入一个新的sql语句,查询nation表里面的民族名字
    28     
    29     $r1=$db->query($sql1);                                
    30     $a1=$r1->fetch_row();                              //抓取到了一个符合条件的一维数组。定义为$a 数组的第二个元素就是民族名称,所以下面直接输出$a[1]就可以了
    31      echo "<tr>
    32         <td>{$v[0]}</td>
    33         <td>{$v[1]}</td>
    34         <td>{$sex}</td>
    35         <td>{$a1[1]}</td>
    36         <td>{$v[4]}</td>
    37         <td> <a href='change_info.php?Code={$v[0]}'>修改</a></td>  //这里给修改一个链接,让其去跳转到修改界面 change.php ,但是这里怎么让它知道你想修改谁呢,就在跳转地址后面带上每条数据的唯一键值 ,以类GET方式传递给修改页面
    38     </tr>";
    39      
    40      
    41      }
    42  ?>
    43 </table>
    44 </body>
    45 </html>

    效果图

    2.下面我们就写出change_info.php 这个修改数据的页面

    代码如下

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>无标题文档</title>
     6 </head>
     7 <?php
     8 $r=$_GET["Code"];                                      //根据上个页面提交到地址栏带来的数据 ,用GET方式读取
     9 $db=new MySQLi("localhost","root","","test_0306_1");
    10 $sql="select * from info where Code='{$r}'";
    11 $result=$db->query($sql);
    12 $attr=$result->fetch_row();
    13 
    14 
    15 
    16 ?>
    17 
    18 <body>
    19 <h1>修改界面</h1>
    20 <form action="update_info.php" method="post">
    21 <div><input type="hidden" name="Code"  value=<?php echo $attr[0] ?>}/></div>
    22 <div>姓名<input type="text" name="Name" value=<?php echo $attr[1] ?> /></div>
    23 <div><input type="radio" name="Sex" value="1" <?php echo $attr[2]?"checked='checked'":"";?>  />  //这里性别选择使用了单选,并且设置了默认值,方法就是嵌入三目 判断,如果结果不为0(true),则默认选中
    24<input type="radio" name="Sex" value="0"   <?php echo $attr[2]?"":"checked='checked'";?> />  //同上
    25 <div>民族<select name="Nation">               //民族使用了下拉选择,并且也设置默认值就是原有数据
    26 <?php                                         //建立连接,来获取nation表里的数据
    27 $sql2="select * from nation";                 
    28 $result2=$db->query($sql2);
    29 $attr2=$result2->fetch_all();
    30 foreach($attr2 as $v){
    31     if($attr[3]==$v[0]){                      //判断一下,info表的民族值(原有值)是否等于即将要创建的选项,如果是,就让它默认选中显示
    32         echo "<option selected='selected' value='$v[0]'>{$v[1]}</option>";
    33         
    34         }
    35     else{
    36         echo "<option value='{$v[0]}'> {$v[1]}</option>"; //输出其他的下拉选项
    37         
    38         }
    39     
    40     
    41     }
    42 
    43 ?>
    44 
    45 </select></div>
    46 <div>生日<input type="date" name="Birthday"  value=<?php echo $attr[4] ?>/></div>
    47 <div><input type="submit" value="提交" /></div>
    48 </form>
    49 </body>
    50 </html>

    效果图

     3、接下来就是处理修改数据的update_info.php页面

    代码如下

    <?php 
    
    $Code = $_POST["Code"];
    $Name = $_POST["Name"];
    $Sex = $_POST["Sex"];
    $Nation = $_POST["Nation"];
    $Birthday = $_POST["Birthday"];
    
    
    //将修改后的数据写入数据库,覆盖原来的数据
    
    $db = new MySQLi("localhost","root","","test_0306_1");
    $sql = "update info set Name='{$Name}', Sex={$Sex},Nation = '{$Nation}',Birthday = '{$Birthday}' where Code = '{$Code}'";
    if ($db->query($sql))
    {
        header("location:main_info.php");
        }
    else
    {
        echo "修改失败!";
        }
    
    
    
    
    ?>

    效果图

    提示:如果数据表存在外键,将会出现删除失败

  • 相关阅读:
    青蛙学Linux—Zabbix部署之构建LNMP环境
    青蛙学Linux—Zabbix运维监控平台
    青蛙学Linux—ProxySQL实现MySQL读写分离
    青蛙学Linux—ProxySQL配置系统
    青蛙学Linux—MySQL中间件ProxySQL
    青蛙学Linux—MySQL主从复制
    青蛙学Linux—MySQL备份工具XtraBackup
    PicGo+图床,编写本地markdown
    mfix输出自定义数据
    OpenFoam+CFDEM+Liggghts安装耦合
  • 原文地址:https://www.cnblogs.com/du892294464/p/6778005.html
Copyright © 2020-2023  润新知