我很难解决此问题。由于系统功能,我使用了多个查询。我有一个带有2个查询的传递表,该查询需要从数据库插入2个表。我只能插入一个表行,但是当要插入2个或更多数据时,将显示不同步的命令。
下面是我的图形。
这是我使用的PHP代码。
if($result == true){
for($count = 0; $count<count($_POST['barcode']); $count++){
$transaction[] = $transaction_no;
}
for($num= 0; $num < count($_POST['barcode']); $num++){
$transaction1 = mysqli_real_escape_string($db, $transaction[$num]);
$barcode_1 = mysqli_real_escape_string($db, $barcode[$num]);
$product_1 = mysqli_real_escape_string($db, $product[$num]);
$qty_1 = mysqli_real_escape_string($db, $qty[$num]);
$buy_price_1 = mysqli_real_escape_string($db, $buy_price[$num]);
$unit_1 = mysqli_real_escape_string($db, $unit[$num]);
$tax_1 = mysqli_real_escape_string($db, $tax[$num]);
$min_qty_1 = mysqli_real_escape_string($db, $min_qty[$num]);
$sell_price_1 = mysqli_real_escape_string($db, $sell_price[$num]);
$query = "SELECT product_no,quantity FROM products WHERE product_no='$barcode_1'";
$result1 = mysqli_query($db, $query);
if(mysqli_num_rows($result1)>0){
while($row = mysqli_fetch_array($result1)){
$newqty = $row['quantity'] + $qty_1;
$query1 = "UPDATE products SET quantity = $newqty WHERE product_no = '$barcode_1";
mysqli_query($db, $query1);
}
}else{
$insert .= "
INSERT INTO products(product_no,product_name,sell_price,quantity,unit,min_stocks)
VALUES('$barcode_1','$product_1',$sell_price_1,$qty_1,'$unit_1',$min_qty_1);
";
$insert1 .= "
INSERT INTO product_delivered(transaction_no,product_id,total_qty,buy_price,tax_rate)
VALUES('$transaction1','$barcode_1',$qty_1,$buy_price_1,$tax_1);
";
}
}
if($insert != ''){
if(mysqli_multi_query($db,$insert)){
echo "Item Inserted";
}else{
echo "Error";
}
}
if($insert1 != ''){
mysql_next_result($db);
if(mysqli_multi_query($db,$insert1)){
echo "Item Inserted";
}else{
echo "Error";
}
我没有显示所有代码,因为只有$ insert1出现错误。我尝试过
mysqli_next_result()
在第二个查询之前,但仅适用于两个查询。当我插入3个以上的查询时,就会显示问题。希望有人能帮助我。