PHP数据访问的增删改查

Posted 黑山大胖子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数据访问的增删改查相关的知识,希望对你有一定的参考价值。

在页面中用php方式对数据实现增删改查,一共6个页面来实现这个功能,

1.查询页面:

<!--这是查询页面,用来查询数据库中的数据,数据会以表格的形式显示在页面中,用户可以在这个页面执行添加、修改、删除数据的操作-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!--引入bootstrap文件-->
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>

<body>
<!--创建一个表格-->
<table class="table table-striped">
  <caption>人员信息</caption>
  <thead>
    <tr>
      <th >编号</th>
      <th >姓名</th>
      <th >性别</th>
      <th >生日</th>
      <th >班级</th>
    </tr>
  </thead>
  <tbody>
  <!--用PHP读取数据库数据并输出到网页-->
   <?php
        $db = new mysqli("localhost","root","","xuexiao");    //创建一个连接对象
           mysqli_connect_error()?die("连接错误!"):"";    //判断连接是否成功
        $sql = "select sno,sname,ssex,date(sbirthday),class from student";//创建一个sql语句
        $result = $db->query($sql);//执行sql语句并且接收结果和对象
        if($result){    //判断是非执行成功
            $arr = $result->fetch_all();//读取查询结果,fetch_all()会读取全部内容
            foreach($arr as $v){    //foreach遍历并输出数据
            echo " <tr>
                      <td>{$v[0]}</td>
                      <td>{$v[1]}</td>
                      <td>{$v[2]}</td>
                      <td>{$v[3]}</td>
                      <td>{$v[4]}</td>           
                      <td><a href=‘./delete.php?sno={$v[0]}‘ onclick=\"return confirm(‘确认删除吗‘)\"><button type=‘button‘ class=‘btn btn-primary‘ >删除</button></a></td>
                      <td><a href=‘./xiugai.php?sno={$v[0]}‘><button type=‘button‘ class=‘btn btn-primary‘>修改</button></a></td>
                    </tr>";        //用超链接添加修改和删除选项,超链接地址指向下一步的操作页面xiugai.php和delete.php,超链接用get方式把要操作的那条数据的主键值传给下一步的操作页面
            }
        }
    ?>
  </tbody>
</table>
<!--用超链接添加添加选项,超链接地址指向下一步的操作页面tianjia.php-->
<a href="tianjia.php">添加人员信息</a>

</body>
</html>

 

 

2.添加页面:

<!--这是查询页面0114-1.php点击添加选项跳转过来的页面,用于添加数据,以表单形式让用户输入数据,点击提交后存入数据库,但是还需要把数据提交给下一个页面add.php处理数据-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!--引入bootstrap文件-->
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>

</head>

<body>
<h1>添加信息</h1>
<div class="panel panel-default" style="width:500px">
    <div class="panel-body">
        <!--form里指定好提交时接收提交的数据的文件,该文件会做下一步的数据处理,数据的提交方式选用post保密提交以保护数据隐私-->
        <form action="add.php" method="post">
            <div class="input-group">
                <span class="input-group-addon">编号</span>
                <!--要指定好name值以便提交-->
                <input type="text" class="form-control" placeholder="请输入编号" name="sno">
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">姓名</span>
                <!--要指定好name值以便提交-->
                <input type="text" class="form-control" placeholder="请输入姓名" name="sname">
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">性别</span>&nbsp;&nbsp;
                <!--性别用单选框选择,指定好name值-->
                <label for="sex1">&nbsp;</label><input type="radio" name="ssex" id="sex1" value="男" checked/>&nbsp;&nbsp;
                <label for="sex2">&nbsp;</label><input type="radio" name="ssex" id="sex2" value="女" />
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">生日</span>
                <!--要指定好name值以便提交-->
                <input type="text" class="form-control" placeholder="请输入生日" name="sbirthday">
            </div>
             <br/>
            <div class="input-group">
                <span class="input-group-addon">班级</span>
                <!--要指定好name值以便提交-->
                <input type="text" class="form-control" placeholder="请输入班级" name="class">
            </div>
            <br/>
            <!--提交按钮执行添加,会把数据提交给form指向的下一个处理页面-->
            <input class="btn btn-default" type="submit" value="添加" >        
        </form>
    </div>
</div>


</body>
</html>

 

3.处理数据添加的页面

<?php
//这是tianjia.php提交后用来处理数据的页面
    $arr = $_POST;    //接收传过来的数据,以post方式提交就用全局变量$_POST接收,接收到以个数据的关联数组,之前的页面里的name就是关联的索引
    //var_dump($arr);
    $sno = $arr["sno"];    //分别取出每一个数据
    $sname = $arr["sname"];
    $ssex = $arr["ssex"];
    $sbirthday = $arr["sbirthday"];
    $class = $arr["class"];
    
    $db = new MySQLi("localhost","root","","xuexiao");//创建一个连接对象
    mysqli_connect_error()?die("连接错误"):"";//判断连接是否成功
    $sql = "insert into student values(‘$sno‘,‘$sname‘,‘$ssex‘,‘$sbirthday‘,‘$class‘)";//创建一个sql语句
    $result = $db->query($sql);//执行sql语句并接收结果和对象
    if($result){//判断执行是否成功
        echo "<script type=‘text/javascript‘>
            window.location.href=‘tianjia.php‘;
        </script>";//执行成功就跳转回添加页面,通过输出js代码实现
    }else{
        echo "添加失败!";    //执行失败,输出提示
    }

 

4.处理删除数据的页面

<?php 
//这是查询页面0114-1.php点击删除后跳转过来用来处理数据的页面
    $sno = $_GET["sno"];//删除选项用超链接的get方式传值,这里用$_GET接收数据,虽然只有一个数据但是这还是一个关联数组
    //echo $sno;
    $db = new MySQLi("localhost","root","","xuexiao");//建立连接对象
    mysqli_connect_error()?die("连接失败!"):"";//判断连接是否成功
    $sql = "delete from student where sno={$sno}";//创建一个sql语句
    $result = $db->query($sql);//执行sql语句并接收结果和对象
    if($result){    //判断是否执行成功
        echo "<script type=‘text/javascript‘>
            window.location.href=‘0114-1.php‘;
        </script>";    //执行成功,输出js代码以返回到查询页面
    }else{
        echo "删除失败!";    //执行失败,输出提示
    }

 

5.在查询页面点击修改后弹出的修改页面

<!--这是查询页面0114-1.php点击修改后跳转过来的页面,页面会把要修改的那条数据的值默认输出在页面中,点击修改后会修改数据,但是还需要提交到下一个页面update.php中处理数据-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!--引入bootstrap文件-->
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>

<body>
<?php 
    $sno = $_GET["sno"];    //修改选项是用超链接的get方式传值,所以用$_GET接收数据,注意虽然只有一个数据,但是这还是以个关联数组
    $db = new MySQLi("localhost","root","","xuexiao");    //建立一个连接对象
    mysqli_connect_error()?die("连接错误!"):"";    //判断连接是否成功
    $sql = "select sno,sname,ssex,date(sbirthday),class from student where sno=‘{$sno}‘";//创建一个sql语句
    $result = $db->query($sql);        //执行sql语句并接收结果和对象
    $arr = $result->fetch_row();    //读取查询结果
?>
<h1>修改信息</h1>
<div class="panel panel-default" style="width:500px">
    <div class="panel-body">
        <!--form里指定好提交时接收提交的数据的文件,该文件会做下一步的数据处理,数据的提交方式选用post保密提交以保护数据隐私-->
        <form action="update.php" method="post">
            <div class="input-group">
                <span class="input-group-addon">编号</span>
                <!--把默认值即数据相对应的值写入表单中-->
                <input type="text" class="form-control" placeholder="请输入编号" name="sno" readonly value="<?php echo $arr[0] ?>">
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">姓名</span>
                <!--把默认值即数据相对应的值写入表单中-->
                <input type="text" class="form-control" placeholder="请输入姓名" name="sname" value="<?php echo $arr[1] ?>">
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">性别</span>&nbsp;&nbsp;
                <!--把默认值即数据相对应的值写入表单中,性别用三元运算判断男女并添加默认选中属性checked-->
                <label for="sex1">&nbsp;</label><input type="radio" name="ssex" id="sex1" value="男" <?php echo $arr[2]="男"?"checked":""; ?>/>&nbsp;&nbsp;
                <label for="sex2">&nbsp;</label><input type="radio" name="ssex" id="sex2" value="女" <?php echo $arr[2]="女"?"checked":""; ?> />
            </div>
            <br/>
            <div class="input-group">
                <span class="input-group-addon">生日</span>
                <!--把默认值即数据相对应的值写入表单中-->
                <input type="text" class="form-control" placeholder="请输入生日" name="sbirthday" value="<?php echo $arr[3] ?>">
            </div>
             <br/>
            <div class="input-group">
                <span class="input-group-addon">班级</span>
                <!--把默认值即数据相对应的值写入表单中-->
                <input type="text" class="form-control" placeholder="请输入班级" name="class" value="<?php echo $arr[4] ?>">
            </div>
            <br/>
            <!--修改好了点击提交,数据会提交给form指定的下一个页面update.php-->
            <input class="btn btn-default" type="submit" value="修改" >
            
        </form>
    </div>
</div>


</body>
</html>

 

6.处理修改数据的页面

<?php 
//这是xiugai.php提交后用来处理数据的页面
    $arr = $_POST;//接收传过来的数据,以post方式提交就用全局变量$_POST接收,接收到以个数据的关联数组,之前的页面里的name就是关联的索引
    //print_r($arr);
    $sno = $arr["sno"];    //分别取出每一个数据
    $sname = $arr["sname"];    
    $ssex = $arr["ssex"];
    $sbirthday = $arr["sbirthday"];
    $class = $arr["class"];
    
    $db = new MySQLi("localhost","root","","xuexiao");//创建一个连接对象
    mysqli_connect_error()?die("连接错误!"):"";//判断连接是否成功
    $sql = "update student set sname=‘{$sname}‘,ssex=‘{$ssex}‘,sbirthday=‘{$sbirthday}‘,class=‘{$class}‘ where sno={$sno}";//创建一个sql语句
    $result = $db->query($sql);//执行sql语句并接收结果和对象
    if($result){    //判断是否执行成功
        echo "<script type=‘text/javascript‘>
            window.location.href = ‘0114-1.php‘
        </script>";    //执行成功,输出js代码以跳转回查询页面
    }else{
        echo "修改失败!";    //执行失败,输出提示
    }

 

以上是关于PHP数据访问的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

PHP怎么实现字符串的增删改查

数据的增删改查(三层)

PHP--数据库访问(增删改查)

PHP如何把前端用户的增删改查操做记录写进数据库表?

PHP中最复杂最难搞的是否数据库的增删改查

Thinkphp---练习:数据的增删改查