• php数据访问之查询 、删除 ,增添


    1.查询

    把昨天的作业(查询一张数据表,以表格的形式显示)作为一个例子

    思路就是连接数据库,然后读取SQL语句并且根据条件遍历输出

    <body>


    <table border="1px" cellpadding="0px" cellspacing="0px" width="100%">    //外层表结构

    <tr align="center">                                                            //自己写好表头(字段名)
    <td>学号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>出生日期</td>
    </tr>

    <?php
    $db = new MySQLi("localhost","root","","test");          // 连接数据库
    $db->query("set names UTF8");           //设置字符编码

    $sql = "select * from teacher";            //读取SQL语句
    $result = $db->query($sql);
    while($arr = $result->fetch_row())          //循环,抓取每行的数据,直到没有数据
    {
    echo "<tr align='center'> <td>{$arr[0]}</td>          //输出数据表中的每个字段内容
    <td>{$arr[1]}</td>
    <td>{$arr[2]}</td>
    <td>{$arr[3]}</td></tr>";
    }
    ?>
    </table>

    </body>

     2.数据删除操作

    <body>
    <h1>学生表查询</h1>
    <table cellpadding="0px" cellspacing="0px" border="1px" align="center" width="100%">
    <tr>
    <td>学号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>生日</td>
    <td>班级</td>
    <td>操作</td>

    </tr>
    <?php
    $db=new MySQLi("localhost","root","","test");                           
    $sql="select * from student";
    $result=$db->query($sql);
    $attr=$result->fetch_all();
    foreach($attr as $v)
    { echo "<tr>
    <td>{$v[0]}</td>
    <td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$v[3]}</td>
    <td>{$v[4]}</td>                                                                                                               //和查询一样,这里多出来一个定义字段,作为删除功能键,定义为<a>超链接标签

    <td><a href='dele.php?Sno={$v[0]}' onclick="return confirm('你确定删除吗')">删除</a></td> //同时给删除键一个点击事件,这样会先执行点击事件,后完成提交跳转,添加了一个确认事件,为了防止不经过用户确认而造成的误删现象。

    </tr>";}                                             //在提交删除操作时,同时提交了一个类get操作(地址栏显示)的数据主键值,使得提交时能辨识出需要删除的具体是哪个数据

     ?>

    </table><br />

    </body>

    效果如下图

    当点击删除时

    接下来就是写后台删除的PHP页面

    <?php
    $r1=$_GET["Sno"];                                         //通过get方式获取到了删除页面传来的主键对应的值
    $db=new MySQLi("localhost","root","","test");     //链接数据库
    $sql="delete from student where Sno={$r1}";    //读取sql语句
    if($db->query($sql)){                                      
    header("location:check.php");                            //删除成功后跳转至原来的界面,1. header方法,此方法问题会出现在,如果不是跳转同级文件下的时候出错
    echo "<script>window.location.href='check.php';</script>" //2.JS跳转方式

    echo"<script>window.open('check.php','_self',)</script>"   //3.JS跳转方式    3种方式都能成功跳转。
    }

     ?>

    3.添加数据(和前面的注册基本一致的做法)

    第一步:增加一个添加的提交或超链接按钮

    <a href="add.php"><input  type="submit" name="add" value="添加学生"/></a>

    第二步:写add添加的页面

    <body>
    <h1 align="center">学生信息添加</h1>
    <div style=" background-color:#0CC" align="center">
    <form action="tianjia.php" method="post">
    <div>学号:<input type="text" name="Sno" /></div><br />

    <div>姓名:<input type="text" name="Sname" /></div><br />

    <div>男<input type="radio" name="Ssex" /> 女<input type="radio" name="Ssex"</div><br />

    <div>生日:<input type="date" name="birthday"/></div><br />

    <div>班级<input type="text" name="class" /></div><br />

    <input type="submit" value="提交"/>

    </form>
    <div>
    </body>

    第三步:写出处理添加数据操作的php页面

    <?php
    $id=$_POST["Sno"];
    $name=$_POST["Sname"];
    $sex=$_POST["Ssex"];
    $birthday=$_POST["birthday"];
    $class=$_POST["class"];
    $db=new MySQLi("localhost","root","","test");
    $sql="insert into student values('{$id}','{$name}','{$sex}','{$birthday}','{$class}')";
    if($db->query($sql)){
    echo "学生{$name}信息添加成功";
    //header("location:check.php");
    echo"<script> window.open('check.php','_self','')</script>";
    }
    else{
    echo "学生信息添加失败".$db_error;
    }

    ?>

    4.修改数据表

    如果数据表中显示的内容和我们想要显示的结果不同,比如性别在数据表中储存的是0和1,但是我们想要显示的是男和女

    还有就是连有外键的数据表,显示的内容中只是一个外键的字段名,我们就要进行修改

    例如下面

    <body>
    <h1>显示info信息</h1>
    <table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
    <td>代号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>民族</td>
    <td>生日</td>
    <td>操作</td>
    </tr>

    <?php
    $db = new MySQLi("localhost","root","123","mydb");
    $sql = "select * from info";
    $result = $db->query($sql);
    $arr = $result->fetch_all();
    foreach($arr as $v)
    {
    //修改性别
    $sex = $v[2]?"男":"女";

    //修改民族
    $sql1 = "select name from nation where code='{$v[3]}'";     //读取关联表的数据 
    $r1 = $db->query($sql1);                                                  //存入变量集中
    $a1 = $r1->fetch_row();                  //用数组储存抓取的数据

    echo "<tr>
    <td>{$v[0]}</td>
    <td>{$v[1]}</td>
    <td>{$sex}</td>       //将修改后的直接存在变量里输出显示
    <td>{$a1[0]}</td>   //直接替换成关联表中的数据
    <td>{$v[4]}</td>
    <td><a href='del.php?code={$v[0]}' onclick="return confirm('确认删除么?')">删除</a></td>
    </tr>";
    }
    ?>

    </table>
    </body>

  • 相关阅读:
    使用supervisor过程的坑
    为apache安装mod_wsgi的时候出现-fpic的问题
    信息生成二维码的方法
    mac下virtualbox安装win7系统
    js读取json方法
    如何读取抓取的wifi包内容
    python文章学习列表
    sqlserver中drop、truncate和delete语句的用法
    UE中使用正则表达式的一些技巧
    指定IE浏览器渲染方式
  • 原文地址:https://www.cnblogs.com/du892294464/p/6770530.html
Copyright © 2020-2023  润新知