Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止更新和删除函数影响表中的其他行?_Php_Mysql_Json_Ajax_Stored Procedures - Fatal编程技术网

Php 如何防止更新和删除函数影响表中的其他行?

Php 如何防止更新和删除函数影响表中的其他行?,php,mysql,json,ajax,stored-procedures,Php,Mysql,Json,Ajax,Stored Procedures,我已经修复了以前代码中的错误,但我遇到了一个新问题,我创建的删除和更新函数影响了数据库中的所有其他行… 我怎样才能阻止它?这是我的密码 主体: <h2 align="center">Add to Inventory</h2> <div class="row control-group">

我已经修复了以前代码中的错误,但我遇到了一个新问题,我创建的删除和更新函数影响了数据库中的所有其他行…
我怎样才能阻止它?这是我的密码

主体:

                           <h2 align="center">Add to Inventory</h2>
                            <div class="row control-group">
                                <div class="form-group col-xs-12 floating-label-form-group controls">
                                    <label class="sr-only">Item Name:</label>
                                    <input type="text" class="form-control" placeholder="Name" id="itemName" name="itemName" required data-validation-required-message="Please enter the item's." autofocus="true">
                                    <p class="text-danger help-block"></p>
                                </div>
                            </div>
                            <div class="row control-group">
                                <div class="form-group col-xs-12 floating-label-form-group controls">
                                    <label class="sr-only">Description</label>
                                    <input type="text" class="form-control" placeholder="Item Description" id="itemDescription" name="itemDescription" required data-validation-required-message="Please enter the item's description.">
                                    <p class="help-block text-danger"></p>
                                </div>
                            </div>
                            <div class="row control-group">
                                <div class="form-group col-xs-12 floating-label-form-group controls">
                                    <label class="sr-only">In Stock</label>
                                    <input type="text" class="form-control" placeholder="In Stock" id="stock" name="stock" required data-validation-required-message="How many items are available">
                                    <p class="help-block text-danger"></p>
                                </div>
                            </div>
                            <div class="row control-group">
                                <div class="form-group col-xs-12 floating-label-form-group controls">
                                    <label class="sr-only">Price (Gh &#x20b5:)</label>
                                    <input type="text" class="form-control" placeholder="Unit Price (Gh &#x20b5:)" id="price" name="price" required data-validation-required-message="How many items are available">
                                    <p class="help-block text-danger"></p>
                                </div>
                            </div>
                            <br>
                            <div id="success"></div>
                            <div class="row">
                                <div class="form-group col-xs-12">
                                    <input type="hidden" name="item_id" id="item_id">
                                    <button type="button" name="action" id="action" class="btn btn-success btn-lg" style="float: right; margin-right: 20px;">Add</button>
                                </div>
                            </div>
            </div>
        </div>
        <div id="result" class="table">

        </div>
添加到库存
项目名称:

描述

有现货的

价格(Gh和x20b5:)


添加
剧本

<script type="text/javascript">

$(document).ready(function(){
    fetchItems();
    function fetchItems(){
        var action= "select";
        $.ajax({
            url: "itemSelect.php",
            method: "POST",
            data:{action:action},
            success: function(data){
                $('#itemName').val('');
                $('#itemDescription').val('');
                $('#stock').val('');
                $('#price').val('');
                $('#item_id').val('');
                $('#action').text("Add");
                $('#result').html(data);
            }
        });
    }
    $('#action').click(function(){
        var itemName= $('#itemName').val();
        var itemDescription= $('#itemDescription').val();
        var stock= $('#stock').val();
        var price= $('#price').val();
        var item_id= $('#item_id').val();
        var action= $('#action').text();

        if (itemName!='' && itemDescription!='' && stock!='' && price!='') {
            $.ajax({
                url: "itemAction.php",
                method: "POST",
                data:{itemName:itemName, itemDescription:itemDescription, stock:stock, price:price, item_id:item_id, action:action},
                success:function(data){
                    alert(data);
                    fetchItems();
                }
            });
        }else{
            alert("All fields are required");
        }
    });
    $(document).on('click', '.update', function(){
        var item_id= $(this).attr("id");
        $.ajax({
            url: "fetch.php",
            method: "POST",
            data:{item_id:item_id},
            dataType:"json",
            success:function(data){
                $('#action').text("Edit");
                $('#item_id').val(item_id);
                $('#itemName').val(data.itemName);
                $('#itemDescription').val(data.itemDescription);
                $('#stock').val(data.stock);
                $('#price').val(data.price);
                $('#item_id').val(data.item_id);
            }
        });
    });

    $(document).on('click', '.delete', function(){
        var item_id= $(this).attr("id");
        if (confirm("Are you sure you want to remove this data?")) {
            var action= "Delete";
            $.ajax({
                url: "itemAction.php",
                method: "POST",
                data:{item_id:item_id, action:action},
                success:function(data){
                    fetchItems();
                    alert(data);
                }
            });
        }else{
            return false;
        }
    });
});

$(文档).ready(函数(){
fetchItems();
函数fetchItems(){
var action=“选择”;
$.ajax({
url:“itemSelect.php”,
方法:“张贴”,
数据:{action:action},
成功:功能(数据){
$('#itemName').val('');
$('#itemsdescription').val('');
$('股票').val('');
$('价格').val('');
$('item_id').val('');
$('行动')。文本(“添加”);
$('#result').html(数据);
}
});
}
$(“#操作”)。单击(函数(){
var itemName=$('#itemName').val();
var itemsdescription=$('#itemsdescription').val();
var股票=$(“#股票”).val();
var价格=$(“#价格”).val();
var item_id=$('#item_id').val();
var action=$('#action').text();
如果(itemName!=''&&itemDescription!=''&&stock!=''&&price!=''){
$.ajax({
url:“itemAction.php”,
方法:“张贴”,
数据:{itemName:itemName,itemsdescription:itemsdescription,stock:stock,price:price,item\u id:item\u id,action:action},
成功:功能(数据){
警报(数据);
fetchItems();
}
});
}否则{
警报(“所有字段均为必填项”);
}
});
$(文档)。在('单击','更新',函数()上){
var item_id=$(this.attr(“id”);
$.ajax({
url:“fetch.php”,
方法:“张贴”,
数据:{item_id:item_id},
数据类型:“json”,
成功:功能(数据){
$(“#操作”).text(“编辑”);
$('item_id').val(item_id);
$('#itemName').val(data.itemName);
$('#itemsdescription').val(data.itemsdescription);
$('#stock').val(data.stock);
$('#price').val(data.price);
$('#item_id').val(data.item_id);
}
});
});
$(文档)。在('单击','删除',函数()上){
var item_id=$(this.attr(“id”);
如果(确认(“您确定要删除此数据吗?”)){
var action=“删除”;
$.ajax({
url:“itemAction.php”,
方法:“张贴”,
数据:{item_id:item_id,action:action},
成功:功能(数据){
fetchItems();
警报(数据);
}
});
}否则{
返回false;
}
});
});

itemSelect.php:

<?php
$output= '';
$connect= mysqli_connect("localhost", "Eben", "Pass1234", "stageupgh");
if (isset($_POST["action"])) {
    $procedure= "
        CREATE PROCEDURE selectItem()
        BEGIN
            SELECT * FROM items ORDER BY item_id DESC;
        END;
    ";
    if (mysqli_query($connect, "DROP PROCEDURE IF EXISTS selectItem")) {
        if (mysqli_query($connect, $procedure)) {
            $query= "CALL selectItem()";
            $result= mysqli_query($connect, $query);
            $output.= '
                <table class="table" style="background-color: inherit;">
                    <tr>
                        <th>Item Name</th>
                        <th>Description</th>
                        <th>In Stock</th>
                        <th>Unit price</th>
                        <th colspan="2" align="center">Action</th>
                    </tr>
            ';
            if (mysqli_num_rows($result)>0) {
                while ($row= mysqli_fetch_array($result)) {
                    $output.= '
                        <tr>
                            <td>'.$row["name"].'</td>
                            <td>'.$row["description"].'</td>
                            <td>'.$row["in_stock"].'</td>
                            <td>Gh &#x20b5 '.$row["price"].'</td>
                            <td hidden="true">'.$row["item_id"].'</td>
                            <td>
                                <button type="button" name="update" id="'.$row["item_id"].'" class="update btn btn-warning">Update</button>
                            </td>
                            <td>
                                <button type="button" name="delete" id="'.$row["item_id"].'" class="delete btn btn-danger">Delete</button>
                            </td>
                        </tr>
                    ';
                }
            }else{
                $output.= '
                    <tr align="center">
                        <td colspan="6">There are no items available</td>
                    </tr>
                ';
            }
            $output.= '</table>';
            echo $output;
        }
    }
}

fetch.php:

<?php
$connect= mysqli_connect("localhost", "Eben", "Pass1234", "stageupgh");
if ($connect) {

    if (isset($_POST['item_id'])) {
        $output= array();
        $procedure= "
            CREATE PROCEDURE whereItem(IN item_id int(11))
            BEGIN
                SELECT * FROM items WHERE item_id= item_id;
            END;
        ";
        if (mysqli_query($connect, "DROP PROCEDURE IF EXISTS whereItem")) {
            if (mysqli_query($connect, $procedure)) {
                $query=  "CALL whereItem(".$_POST["item_id"].")";
                $result= mysqli_query($connect, $query);
                while ($row= mysqli_fetch_array($result)) {
                    $output['itemName']= $row["name"];
                    $output['itemDescription']= $row["description"];
                    $output['stock']= $row["in_stock"];
                    $output['price']= $row["price"];
                    $output['item_id']= $row['item_id'];
                }
                echo json_encode($output);
            }
        }
    }
}else{
    die(mysql_error());
}

和itemAction.php:

<?php
if (isset($_POST["action"])) {
    $connect= mysqli_connect("localhost", "Eben", "Pass1234", "stageupgh");

    if ($_POST["action"]=="Add") {
        $itemName= mysqli_real_escape_string($connect, $_POST["itemName"]);
        $itemDescription= mysqli_real_escape_string($connect, $_POST["itemDescription"]);
        $stock= mysqli_real_escape_string($connect, $_POST["stock"]);
        $price= mysqli_real_escape_string($connect, $_POST["price"]);

        $procedure= "
            CREATE PROCEDURE insertItem(IN name varchar(100), description varchar(250), in_stock int(11), price decimal(6,2))
            BEGIN
                INSERT INTO items(name, description, in_stock, price) VALUES (name, description, in_stock, price);
            END;
        ";
        if (mysqli_query($connect, "DROP PROCEDURE IF EXISTS insertItem")) {
            if(mysqli_query($connect, $procedure)){
                $query= "CALL insertItem('".$itemName."', '".$itemDescription."','".$stock."','".$price."')";
                mysqli_query($connect, $query);
                echo "Data Inserted";
            }
        }
    }

    if ($_POST['action']=="Edit") {
        $itemName= mysqli_real_escape_string($connect, $_POST["itemName"]);
        $itemDescription= mysqli_real_escape_string($connect, $_POST["itemDescription"]);
        $stock= mysqli_real_escape_string($connect, $_POST["stock"]);
        $price= mysqli_real_escape_string($connect, $_POST["price"]);
        $item_id= mysqli_real_escape_string($connect, $_POST["item_id"]);

        $procedure= "
            CREATE PROCEDURE updateItem(IN item_id int(11), name varchar(100), description  varchar(250), in_stock int(11), price decimal(6,2))
            BEGIN
                UPDATE items SET name= name, description= description, in_stock= in_stock, price= price 
                WHERE item_id= item_id;
            END;
        ";
        if (mysqli_query($connect, "DROP PROCEDURE IF EXISTS updateItem")) {
            if (mysqli_query($connect, $procedure)) {
                $query= "CALL updateItem('".$_POST["item_id"]."', '".$itemName."', '".$itemDescription."', '".$stock."', '".$price."')";
                if (mysqli_query($connect, $query)) {
                    echo "Data Updated";
                }else{
                    echo "Something went wrong...</br>See Developer.</br></br>";
                    die (mysqli_error($connect));
                }

            }
        }
    }

    if($_POST["action"]=="Delete"){
        $procedure="
        CREATE PROCEDURE deleteItem(IN item_id int(11))
        BEGIN
            DELETE FROM items WHERE item_id= item_id;
        END;
        ";
        if (mysqli_query($connect, "DROP PROCEDURE IF EXISTS deleteItem")) {
            if (mysqli_query($connect, $procedure)) {
                $query= "CALL deleteItem('".$_POST["item_id"]."')";
                if (mysqli_query($connect, $query)) {
                    echo "Data Deleted";
                }else{
                    echo "Something went wrong...</br></br>";
                    die (mysqli_error($connect));
                }
            }
        }
    }
}

每次执行脚本时重新创建一个简单的过程有什么意义?过程保存在数据库中,并且可以重用,这样编译和优化过程就不必为每次执行运行。通过在每次执行时删除并重新创建过程,您将增加此开销。完全没有意义,你在使用所有程序时都这么做。疯狂之痛。。。那很痛。。。事实上,我不知道发生了什么我正在关注youtube上的一个教程…有1000个教程在那里。他们中的大多数人完全是垃圾,是为寻找PayPerView广告收入而写的。nack正在寻找一个好的!如果你知道什么好的,请帮助我。幸运的是,我不知道有什么好的,推荐教程显然是离题的