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

时间:2014-06-12 00:00:43

标签: php mysql

基本上我有一个函数被调用来更新mysql中的表。问题是,即使它总是运行,有时它也不会修改它应该的值...即,如果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;             
    } 

简而言之......它会一直运行但有时会在更新最后一条记录之前退出。

我运行它的代码:

    if(isset($_POST)){
        if(isset($_POST['upc']) && isset($_POST['name'])){  
        insert_products();
        header( 'Location: ../index.php' );
        }
        else if(isset($_POST['sel'])){ 
        db_select();
        }
        else if(isset($_POST['upc']) && isset($_POST['area'])){
        update_inventory();
        header( 'Location: ../out.php');
                }
        }
        else { 
        header( 'Location: ../in.php' ) ;
        }

发生POST的地方

<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>

0 个答案:

没有答案