PHP/mySQL For循环不总是运行,因此在DB中值保持不变

PHP/mySQL For循环不总是运行,因此在DB中值保持不变,php,mysql,Php,Mysql,基本上,我有一个函数被调用来更新mysql中的表。问题是,即使它总是运行,有时它也不会修改它应该修改的值。。。i、 e如果for循环运行4次,它将运行3次并退出,因此其中1个值保持不变 职能: function update_inventory(){ require_once 'admin_connect.php'; $mysqli_escape = function($str) use ($mysqli) { return my

基本上,我有一个函数被调用来更新mysql中的表。问题是,即使它总是运行,有时它也不会修改它应该修改的值。。。i、 e如果for循环运行4次,它将运行3次并退出,因此其中1个值保持不变

职能:

        function update_inventory(){ 
        require_once 'admin_connect.php';
        $mysqli_escape = function($str) use ($mysqli) {
        return mysqli_real_escape_string($mysqli, $str);
        };

        $upc = array_map($mysqli_escape, $_POST['upc']);
                for($i=0;$i<count($upc);$i++){
                    if($upc[$i] != ''){ 

        $update_query = "UPDATE inventory SET inInv = inInv -1 WHERE UPC = '". $upc[$i] ."'";
        $run_update = mysqli_query($mysqli,$update_query) or die(mysqli_error($mysqli));

        $last_key = $last_key + 1;
            }
        }
        $_SESSION['inventory_out'] = $last_key;             
    } 
邮局在哪里

<div id="body">
<form action="includes/connection_functions.php" method="post">

        <table for=record>

        <th>Item Number</th>
        <th for=c>UPC</th>
        <?php       

        for($i=1; $i<=20; $i++){ 
                echo '<tr>
                <td>'.$i.'</td>
                <td><input type="text" name="upc[]" value="" size="50" /></td>
                </tr>
                ';
        }

        ?>
                   </table>
                            <div for=select>
                            <select name="area">
                            <option value="Desayuno">Desayuno
                            </option><option value="Almuerzo">Almuerzo
                            </option><option value="Cena">Cena</option></select>
                            <input type="reset" value="clear" />
                            <input type="submit" value="submit" />
                            </div>


</form>
</div>

项目编号
UPC
德萨尤诺
阿尔穆尔佐
塞纳

是每次运行时都会发生这种情况还是仅在个别情况下发生?我们可以看到
$\u POST['upc']]
中的内容吗?编辑以显示创建$\u POST['upc']的位置我想我看到了它。。。for($i=1;$i)您确定$upc的长度始终为四个元素,或者其中一个或多个元素不会返回空值吗?值得一提的是,“信任”用户输入通常是一个坏主意……您应该1)检查$upc的长度是否符合预期,2)清理数据以确保没有“杂散”被嵌入(如“\”;从清单中删除,其中1;)
<div id="body">
<form action="includes/connection_functions.php" method="post">

        <table for=record>

        <th>Item Number</th>
        <th for=c>UPC</th>
        <?php       

        for($i=1; $i<=20; $i++){ 
                echo '<tr>
                <td>'.$i.'</td>
                <td><input type="text" name="upc[]" value="" size="50" /></td>
                </tr>
                ';
        }

        ?>
                   </table>
                            <div for=select>
                            <select name="area">
                            <option value="Desayuno">Desayuno
                            </option><option value="Almuerzo">Almuerzo
                            </option><option value="Cena">Cena</option></select>
                            <input type="reset" value="clear" />
                            <input type="submit" value="submit" />
                            </div>


</form>
</div>