PHP - 下面代码如何实现在执行数据库增删改操作时不调用查找的方法?

服务器及编程工具:
wmap、sublime Text 3
数据库:mysql
数据库信息:数据库 - test;username - root;password - 123456;表名 - users
| id | smallint(5) unsigned | NO | PRI | | auto_increment |
| name | varchar(50) | NO | UNI | | |
期望:在执行数据库增删改的时候不要显示下图中高亮的数据(数据库select的数据)
执行结果:
PHP - 下面代码如何实现在执行数据库增删改操作时不调用查找的方法?

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>insert data and show data</title>
</head>
<body>
    <p>1. 添加数据</p>
    <form id = "postData">
        <input type="text" name="name" id="data">
        <input type="submit" value="提交">
    </form>
    <p>2. 删除数据</p>
    <form id="del">
        <input type="text" name="name" id="data1">
        <input type="submit" value="删除">
    </form>
    <p id="content"></p>
    <p>3. 修改数据</p>
    <form id="changeData">
        <input type="text" name="userid" id="userid" placeholder="需要修改的id">
        <input type="text" name="name" id="changeName" placeholder="修改后的姓名">
        <input type="submit" value="修改">
    </form>
    <p id="contentChange"></p>
    <p>4. 显示数据</p>
    <button id="btn">显示数据</button>
    <p id="showData"></p>
    <script type="text/javascript"> 
        document.getElementById("postData").addEventListener("submit",postData);
        function postData(e){
            e.preventDefault();
            var name = document.getElementById("data").value;
            var xhr = new XMLHttpRequest();
            var param = "name="+name;
            xhr.open("POST","sum2_sql.php",true);
            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")
            xhr.onload = function(){
                console.log(this.responseText);
            }
            xhr.send(param);
        }

        document.getElementById("del").addEventListener("submit",deldata);
        function deldata(e){
            e.preventDefault();
            var name = document.getElementById("data1").value;
            var xhr = new XMLHttpRequest();
            xhr.open("GET","sum2_sql.php?name="+name,true);
            xhr.onload = function(){
                document.getElementById("content").innerHTML = this.responseText;
            }
            xhr.send();
        }

        document.getElementById("changeData").addEventListener("submit",changeData);
        function changeData(e){
            e.preventDefault();
            var xhr = new XMLHttpRequest();
            var id = document.getElementById("userid").value;
            var changeName = document.getElementById("changeName").value;
            xhr.open("GET","sum2_sql.php?id="+id+"&changeName="+changeName,true);
            xhr.onload = function(){
                document.getElementById("contentChange").innerHTML = this.responseText;
            }
            xhr.send();
        }

        document.getElementById("btn").addEventListener("click",loadData);
        function loadData(){
            var xhr = new XMLHttpRequest();         
            xhr.open("GET","sum2_sql.php",true);
            var output = '';
            xhr.onload = function(){
                var users = JSON.parse(xhr.responseText);
                //console.log(users[1].id);
                for (var i in users){
                    output += `
                    <ul>
                        <li>${users[i].id}</li>
                        <li>${users[i].name}</li>
                    </ul>
                    `
                }
                document.getElementById("showData").innerHTML = output;
            }       
            xhr.send();         
        }
    </script>
</body>
</html>

PHP代码

<?php
    $conn = mysqli_connect("127.0.0.1:3306","root","123456","test");
    if(isset($_POST["name"])){
        echo "post name is ".$_POST["name"]."\n";
        //insert
        $name = mysqli_real_escape_string($conn,$_POST["name"]);
        $query = "insert into users(name) values('$name')";
        if(mysqli_query($conn,$query)){ 
            echo "新增用户成功";
        }else{
            echo "新增用户失败".mysqli_error($conn);
        }       
    }
    //delete
    if(isset($_GET["name"])){
        echo $_GET["name"]."\n";
        $name = mysqli_real_escape_string($conn,$_GET["name"]);
        $queryDel = "delete from users where name='$name'";
        if(mysqli_query($conn,$queryDel)){
            echo "删除成功";
        }
        else{
            echo "删除失败".mysqli_error($conn);
        }
    }
    //change
    if(isset($_GET["id"],$_GET["changeName"])){
        //echo $_GET["id"].$_GET["changeName"]; 
        $id = mysqli_real_escape_string($conn,$_GET["id"]);
        $name = mysqli_real_escape_string($conn,$_GET["changeName"]);
        $cquery = "update users set name = '$name' where id = $id;";
        if(mysqli_query($conn,$cquery)){
            echo "id为".$id."的数据姓名修改成功!<br>修改后姓名为:".$name;
        }else{
            echo "修改失败".mysqli_error($conn);
        }
    }
     //select
    $queryFind = "select * from users";
    $result = mysqli_query($conn,$queryFind);
    $users = mysqli_fetch_all($result,MYSQLI_ASSOC);
    echo json_encode($users);
?>

我感觉在最后4行PHP select部分的代码应该增加判断条件,在符合条件时再点击【显示数据】按钮执行,现在不知道怎么添加判断。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

增删改成功后你不return一下代码肯定会继续执行,到最后还是会执行最后的代码

    $queryFind = "select * from users";
    $result = mysqli_query($conn,$queryFind);
    $users = mysqli_fetch_all($result,MYSQLI_ASSOC);
    echo json_encode($users);
4天前 评论
wcy911 (楼主) 3天前
讨论数量: 3

你可以试试把增删改都改成POST提交,显示数据GET提交,根据请求方式来判断,不知道是不是你想要的那个意思


        switch ($_SERVER['REQUEST_METHOD'])
        {
            case 'GET':
                //todo
                break;
            case 'POST':
                //todo
                break;
        }
4天前 评论

增删改成功后你不return一下代码肯定会继续执行,到最后还是会执行最后的代码

    $queryFind = "select * from users";
    $result = mysqli_query($conn,$queryFind);
    $users = mysqli_fetch_all($result,MYSQLI_ASSOC);
    echo json_encode($users);
4天前 评论
wcy911 (楼主) 3天前

代码没有终止,继续运行了

3天前 评论
wcy911 (楼主) 3天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!