0

我正在使用 php&mysql 开发发票应用程序。提交发票后我的问题是我想减少数量行。我几乎完成了这段代码

html

<input type="text" name="qty[]" class="productQty"/>
<input type="text" name="product_id[]" class="productId" readonly/>

php

<?php 
$result1 = mysql_query("SELECT * FROM items");
if (!$result1) {
    die("Query to show fields from table failed");
}
$qty = $_POST["qty"];
$qtys = array_values($qty);
$id= $_POST["product_id"];
$ids = array_values($id);
foreach (array_combine($qtys, $ids) as $id => $qty) {
    $show_id =  $id;
    $quantity =  $qty;
    echo "<p><b>" . $show_id . "</b></p>";
    echo "<p><b>" . $quantity . "</b></p>";
    /*
    $stock_update = "Update items set Stock= stock - '$quantity' where ID='$show_id'";
    if (mysqli_query($con, $stock_update)) {
        echo "stock done";
    } else {
        echo "Error creating table: " . mysqli_error();
    }
    */
}

?>

结果
1
BKK01

2
笔01

但问题是数量值是否相等。现在结果
1
PEN01

无法显示第一项。

4

1 回答 1

0

改变 :

foreach (array_combine($qtys, $ids) as $id => $qty) {

至 :

foreach (array_combine($ids, $qtys) as $id => $qty) {

您的 ID 和数量顺序不正确。而且,我想你的 id 将是一个独特的,所以不会有任何问题

array array_combine ( array $keys , array $values )

参考: http: //php.net/manual/en/function.array-combine.php

于 2013-03-26T11:47:52.597 回答