以下是我的工作源代码?我想用相应的项目更新数量并计算总数。我被卡住或做错了编码。请有人能告诉我该做些什么吗?表示当用户增加该项目的数量价格时应该增加..
$sel_user = "select * from cart where ip_add = '$ip' ";
$run_sel_user = mysqli_query($con,$sel_user);
while($p_price = mysqli_fetch_array($run_sel_user))
{
$pro_id = $p_price['p_id'];
$sel_pro_from_product = "select * from products where product_id = '$pro_id'";
$run_pro_from_product = mysqli_query($con,$sel_pro_from_product);
while($pro_price = mysqli_fetch_array($run_pro_from_product))
{
$product_price = array($pro_price['product_price']);
$product_title = $pro_price['product_title'];
$product_image = $pro_price['product_img1'];
$product_single_price = $pro_price['product_price'];
$values = array_sum($product_price);
$total += $values ;
if(isset($_POST['update_cart']))
{
if(isset($_POST['qty']))
{
print_r($_POST['qty']);
foreach($_POST['qty'] as $qty_add)
{
$qty = $qty_add;
$update_qty = "update cart set qty='$qty' where p_id='$pro_id'";
$run_qty = mysqli_query($con,$update_qty);
$total=$total*$qty;
}
}
else
{
}
}
?>
<tr align="center" >
<td style="padding:5px; border:1px solid black;"><input type="checkbox" name="remove[]" value="<?php echo $pro_id;?>"/></td>
<td style="padding:5px; border:1px solid black;"><?php echo $product_title;?><br>
<img src="admin_area/product_images/<?php echo $product_image; ?>" height="60" width="60"/>
</td>
<td style="padding:5px; border:1px solid black;"><input type="text" size="4" name="qty[]"
value="<?php
$default_qty = 1;
if(!isset($_POST['qty']))
{
echo $default_qty;
}
?>" style="text-align:center;"/></td>
<td style="padding:5px; border:1px solid black;"><?php echo $product_single_price." Rs ";?></td>
</tr>
<?php
}}
?>
答案 0 :(得分:0)
您正在将输入框的名称设置为qty []数组,并且对于购物车中的每个项目和数组中的每个项目都进行循环。因此,如果购物车中有20个商品,则您当前正在发送20x20个查询,20个中的19个将包含错误的信息。相反,您可以使用$ pro_id变量设置输入框的名称。
<input type="text" size="4" name="qty<?php echo($pro_id);?>"/>
这样,每个文本框都有自己唯一的名称,该名称标识它是哪个产品。然后在上面的while循环中你可以做类似的事情
if(isset($_POST['update_cart']))
{
if(isset($_POST['qty' . $pro_id]))
{
$quantity = (int)$_POST['qty' . $pro_id];
$run_qty = mysqli_query($con,"update cart set qty='$qty' where p_id='$pro_id'");
}
}
但是,当然,它现在的设置方式,无法知道购物车表中的哪些记录属于哪些用户。因此,如果没有更多更改(例如标识哪些记录属于哪个用户的字段)
,这在现实世界设置中将无效