Я делаю корзину для интернет-магазина, используя PHP и MySQL. И сейчас я работаю над тележкой. По сути, до сих пор я могу получать данные из БД и показывать их в корзине так же, как это изображение:
А сейчас я работаю над обновлением количества продуктов. Например, пользователь должен иметь возможность установить количество продуктов от 1 до 2, от продуктов от 2 до 3 и от продуктов от 3 до 4.
Так что должно быть несколько запросов, потому что каждый продукт имеет уникальный идентификатор продукта.
Итак, что я сделал, это было:
<select name='quantities[]'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
И действие этой формы выглядит так:
$cart_id = $_GET['cart_id'];
if(isset($_POST['update'])){
foreach($_POST['quantities'] as $quantities)
{
$insert_qty = "UPDATE cart SET qty = '$quantities' WHERE cart_id = '$cart_id'";
$run_qty = mysqli_query($con,$insert_qty);
if($run_qty)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=cart.php">';
}else{
die(mysqli_error($con));
}
}
}
Но проблема с этим кодом состоит в том, что он получает только последнее количество последнего продукта и обновляет все элементы корзины покупок до этого числа.
Например, если вы установите количество последнего продукта на 5, в конечном итоге будет установлено число 5 для всех продуктов, имеющихся в этой корзине.
Итак, мой вопрос: как я могу правильно обновить корзину, чтобы у каждого продукта было отдельное количество.
Я действительно ценю любую идею, предложение или решение этого вопроса,
Заранее спасибо ...
А также вот как я получаю данные (только для просмотра):
$get_add = "SELECT * FROM cart WHERE cart_id = '$cart_id'";
$run_add = mysqli_query($con,$get_add);
$cart_items = [];
$total_price_to_pay = 0;
while ($row_results = mysqli_fetch_array($run_add)){
$item = array(
'table_id' => $row_results['table_id'],
'cart_id' => $row_results['cart_id'],
'pro_id' => $row_results['product_id'],
'pro_title' => $row_results['product_title'],
'pro_price' => $row_results['product_price'],
'pro_img' => $row_results['product_image'],
'pro_supplier' => $row_results['product_supplier'],
'qty' => $row_results['qty'],
'cart_ip' => $row_results['cart_ip'],
'pro_total' => $row_results['qty']*$row_results['product_price'],
);
$total_price_to_pay += $row_results['qty']*$row_results['product_price'];
$cart_items[] = $item;
}
foreach ($cart_items as $cart) {
echo $cart['pro_title'] etc ;
}