【发布时间】:2018-09-08 02:12:39
【问题描述】:
我在表单中循环输入标签。我的代码是:
$sql = "SELECT * FROM inventory_tbl";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
echo "<table>
<tr>
<th>Product SKU</th>
<th>Category</th>
<th>Product Name</th>
<th>Size</th>
<th>Quantity</th>
</tr>";
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>
<td>" . $row['product_sku'] . "<input type='hidden' name='productsku[]' value='" . $row['product_sku'] . "'></td>
<td>" . $row['product_category'] . "</td>
<td>" . $row['product_name'] . "</td>
<td>" . $row['product_size'] . "</td>
<td><input type='text' name='productqty[]'></td>
</tr>";
}
}
这是我将数据放入数据库时的代码:
$event_name = $_POST['eventname'];
$event_date = $_POST['eventdate'];
$event_place = $_POST['eventplace'];
$amount = $_POST['amount'];
$product_sku = $_POST['productsku'];
$quantity = $_POST['productqty'];
$sqlcount_product = "SELECT COUNT(product_sku) FROM inventory_tbl WHERE is_deleted = 0;";
$result = mysqli_query($conn, $sqlcount_product);
$y = mysqli_fetch_assoc($result);
$sqlst = "INSERT INTO stalltransaction_tbl(event_name, event_place, event_date) VALUE ('$event_name', '$event_place', '$event_date');";
if (mysqli_query($conn, $sqlst)) {
$last_id = mysqli_insert_id($conn);
}
$x = 0;
while ($x<$y) {
if (!empty($quantity[$x])) {
$sqlo = "INSERT INTO stallitems_tbl(stransaction_no, item_no, product_sku, quantity) VALUE ('$last_id', '$x+1', '$product_sku[$x]', '$quantity[$x]');";
mysqli_query($conn, $sqlo);
$sqlr = "UPDATE inventory_tbl
SET no_of_stock = (no_of_stock - '$quantity[$x]'), no_of_avstock = (no_of_avstock - '$quantity[$x]')
WHERE product_sku = '$product_sku[$x]';";
mysqli_query($conn, $sqlr);
}
$x=$x+1;
}
$x=0;
$sqla = "UPDATE stransaction_tbl
SET total_amount = (SELECT SUM(I.item_price*O.quantity) FROM order_tbl O JOIN inventory_tbl I ON O.product_sku = I.product_sku WHERE O.transaction_no = '$last_id')
WHERE transaction_no = '$last_id';";
mysqli_query($conn, $sqla);
$sqlp = "INSERT INTO payment_tbl(transaction_no, payors_name, payment_mode, payment_date, amount) VALUE ('$last_id', '$event_name', 'Cash', '$event_date', '$amount');";
mysqli_query($conn, $sqlp);
header("Location: ../index.php?newstransaction=success");
向数据库的输入工作在stallitems_tbl 插入循环中。它执行上面的代码,但在循环之后它会停止。我知道是因为数据库交易和支付没有改变。它说“超过 30 秒的最大执行时间”。帮我。我的代码正确吗?谢谢
【问题讨论】:
标签: php mysql mysqli phpmyadmin