基本上我有一个函数被调用来更新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>