暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在网页中修改MySQL的数据

阿帆fan 2021-05-07
386

获取id,连接数据库,把该id的一行数据拿出来

    <?php
    echo '请在表单中修改!'.'<br>';
    $id = $_GET['id'];
    $link = mysqli_connect('localhost','root','','stu_info');
    mysqli_set_charset($link,'utf8');
    $sql = "select * from user where id=$id";
    $res = mysqli_query($link,$sql);
    $rows = mysqli_fetch_array($res);
    var_dump($rows);
    ?>
    复制

    第3行:获取到 list.php 传到本页的id

    第4-5行:连接数据库

    第6行:MySQL语句:获取到该id的一行值

    第7行:执行数据库语句

    第8行:把该id的值以数组数组的形式给到$rows

    第9行:输出测试一下

    输出了一个数组,这个数组就是我们点击的那一列的数据,为什么它每个值都有两个呢?因为 mysqli_fetch_array($res) 就是把某一列的数据转化为关联数组和索引数组的混合数组;

    如果希望只转为索引数组可以用 mysqli_fetch_row($res )

    只转为关联数组用 mysqli_fetch_assoc( )


    转换成数组以后我们就可以用 $rows[索引] 获取到MySQL里的数据了,我们输出一下试试

    代码:

      <?php
      $id = $_GET['id'];
      $link = mysqli_connect('localhost','root','','stu_info');
      mysqli_set_charset($link,'utf8');
      $sql = "select * from user where id=$id";
      $res = mysqli_query($link,$sql);
      $rows = mysqli_fetch_array($res);
      for ($i = 0; $i <= 5; $i++)
      {
      echo $rows[$i].'<br>';
      }
      ?>
      复制

      为了方便用了个循环,应该能看懂吧


      获取到了该列的所有值


      在这个页面放一些表单,把获取到的只放到表单的     value   里

        <body>
        <?php
        echo '请在表单中修改!'.'<br>';
        $id = $_GET['id'];
        $link = mysqli_connect('localhost','root','','stu_info');
        mysqli_set_charset($link,'utf8');
        $sql = "select * from user where id=$id";
        $res = mysqli_query($link,$sql);
        $rows = mysqli_fetch_array($res);
        ?>
        <form action="update2.php" method="post">
        序号:<input type="text" name="id" value="<?php echo $rows[0]; ?>"><br>
        姓名:<input type="text" name="name" value="<?php echo $rows[1]; ?>"><br>
        密码:<input type="text" name="password" value="<?php echo $rows[2]; ?>"><br>
        性别:<input type="text" name="sex" value="<?php echo $rows[3]; ?>"><br>
        爱好:<input type="text" name="hobby" value="<?php echo $rows[4]; ?>"><br>
        城市:<input type="text" name="city" value="<?php echo $rows[5]; ?>"><br>
        <input type="submit" value="修改" >
        </form>
        </body>
        复制

        获取到的数据就放到了表单里

        我们再建一个update.php文件把up.php文件的表单参数用 post 方法传给update.php,就像 zhuce.php与zhuce_in.php一样;

        update.php文件代码:

          <?php
          $id = $_POST['id'];
          $name = $_POST['name'];
          $password = $_POST['password'];
          $sex = $_POST['sex'];
          $hobby = $_POST['hobby'];
          $city = $_POST['city'];
          $link = mysqli_connect('localhost','root','','stu_info');
          mysqli_set_charset($link,'utf8');
          $sql = "update user set name = '$name',password = '$password',sex = '$sex',hobby = '$hobby',city = '$city' where id = $id";
          mysqli_query($link,$sql);
          ?>
          复制

          sql语句:

          $sql = "update user set name = '$name',password = '$password',sex = '$sex',hobby = '$hobby',city = '$city' where id = $id";

          $sql语句根据id的值在数据库中更改指定数据;

          注意:因为我们是根据id的值来更改内容的,所以id的值不能改变;所以我们的代码需要优化!


          你是不是想到了 disabled ?我们试一下在 up.php 序号的 <input> 里加一个disabled

            序号:<input type="text" name="id" disabled="disabled" value="<?php echo $rows[0]; ?>"><br>
            复制

            运行一下:

            出错了!这是因为使用disabled后无法再提交被禁用的元素值,所以会报错

            Undefined index id
            解决方法:把序号的input隐藏掉;然后在php语句中输出序号的值!


            还有,就是让update.php 跳转到 list.php;


            优化后的代码:

              <body>
              <?php
              echo '请在表单中修改!'.'<br>';
              $id = $_GET['id'];
              $link = mysqli_connect('localhost','root','','stu_info');
              mysqli_set_charset($link,'utf8');
              $sql = "select * from user where id=$id";
              $res = mysqli_query($link,$sql);
              $rows = mysqli_fetch_array($res);
              echo '序号:'.$rows[0];
              ?>
              <form action="update2.php" method="post">
              <input type="hidden" name="id" value="<?php echo $rows[0]; ?>"><br>
              姓名:<input type="text" name="name" value="<?php echo $rows[1]; ?>"><br>
              密码:<input type="text" name="password" value="<?php echo $rows[2]; ?>"><br>
              性别:<input type="text" name="sex" value="<?php echo $rows[3]; ?>"><br>
              爱好:<input type="text" name="hobby" value="<?php echo $rows[4]; ?>"><br>
              城市:<input type="text" name="city" value="<?php echo $rows[5]; ?>"><br>
              <input type="submit" value="修改" >
              </form>
              </body>
              复制


              需改后的图:

              这样,就可以在网页中修改MySQL的数据了


              成品图:


              完成了!




              @阿帆fan



              点这里给我留言


              点这里进入阿帆的论坛


              相关推荐

              怎样把MySQL里的数据库打印到网页中?

              把网页表单中的数据放到MySQL

              PHP连接数据库(一)

              MySQL数据库命令表



              文章转载自阿帆fan,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论