Не удаляет товар из корзины

Ниже мой php-код, чтобы показать, как я удаляю товары из корзины. На веб-странице не отображается ошибка, но товар не удаляется и корзина не обновляется. Отредактировано с полным кодом

    <div class="product_box">
<form action="cart.php" method="post" enctype="multipart/data">

<table align="center" width="700" bgcolor="skyblue">

<tr>
<th>Remove</th>
<th>Product (s) </th>
<th>Quantity</th>
<th>Total Price</th>
</tr>

<?php$total = 0;

global $db;

$ip = getIp();

$sel_price ="select * from cart where ip_add='$ip'";

$run_price = mysqli_query($db, $sel_price);

while ($p_price=mysqli_fetch_array($run_price)) {

$pro_id = $p_price['p_id'];

$pro_price = "select * from products where product_id='$pro_id'";

$run_pro_price = mysqli_query($db, $pro_price);

while ($pp_price = mysqli_fetch_array($run_pro_price)) {

$product_price = array($pp_price ['product_price']);

$product_title = $pp_price['product_title'];

$product_image = $pp_price['product_img1'];

$single_price = $pp_price['product_price'];$values = array_sum($product_price);
$total +=$values;

//echo "Rs ." . $total;
?>

<tr align="center">
<td><input type="checkbox" name="remove[]"></td>
<td><?php echo $product_title; ?><br>
<img src="admin_area/product_images/<?php echo $product_image;?>" width="50px" height="50px">
</td>
<td><input type="text" name="qty" size="3"></td>
<td><?php echo "Rs." . $single_price ?></td>
</tr><?php   } } ?>
<tr align="right">
<td colspan="3">
<b> Sub Total: </b>
</td>
<td>
<?php echo "Rs." .$total; ?>
</td>
</tr>
<tr align="center">
<td colspan="1"><input type="submit" name="update_cart" value="Update Cart"></td>
<td><input type="submit" name="continue" value="Continue Shopping"></td>
<td><button><a href="checkout.php">Checkout</a></button></td>
</tr></table>

</form>

<?php
$ip = getIp();

if (isset($_POST['update_cart'])) {

foreach ($_POST['remove'] as $remove_id) {

$delete_product = "delete from cart where p_id=".$remove_id." AND ip_add=".$ip;
$run_delete = mysqli_query($db, $delete_product);
if ($run_delete) {
echo "<script>window.open('cart.php','_self')</script>";
}

}
}

}?>
</div>
</div>

Я попытался проверить ошибку, поместив приведенный ниже код после оператора if, но он не сработал.

else { echo mysqli_error($db);}

Пожалуйста, помогите Спасибо.

0

Решение

Попробуйте использовать writelog, чтобы проверить, получают ли ваши операторы mysql значения. Вот небольшая функция, которая поможет вам лучше в отладке.

<?php
function writelog($content) {
$file = 'log.txt';
file_put_contents($file, date("Y-m-d H:i:s")." : ".$content."\r\n", FILE_APPEND | LOCK_EX);
}

//Only display php errors to the developer...
if($_SERVER['REMOTE_ADDR'] == "put your localhost ip address")
{
error_reporting(0);
ini_set('display_errors', 'On');
$db_hostname = "localhost";
$db_database = "ecommerce";
$db_username = "root";
$db_password = "";
}
else
{
error_reporting(0);
ini_set('display_errors', 'On');
$db_hostname = "localhost";
$db_database = "ecommerce";
$db_username = "root";
$db_password = "";
}

//Establishing database connection
$db_connection = mysqli_connect($db_hostname, $db_username, $db_password, $db_database) or die(mysqli_error($db_connection));

Пример использования этой функции:
write_log ($ delete_product);

Это создаст текстовый файл, где у вас есть текущий файл php.
Узнайте полный пример CRUD php mysqli с этого сайта:

попробуйте это поможет вам лучше понять

2

Другие решения

Я думаю, что вы должны в строке с флажком

<tr align="center">
<td><input type="checkbox" name="remove[]"></td>
<td><?php echo $product_title; ?><br>
<img src="admin_area/product_images/<?php echo $product_image;?>" width="50px" height="50px">
</td>
<td><input type="text" name="qty" size="3"></td>
<td><?php echo "Rs." . $single_price ?></td>
</tr>

Вы должны установить значение = product_id в флажок, как

<input type="checkbox" name="remove[]" id="<?=$pp_price['product_id']?>>
1

Я получил свой ответ, который я только что добавил ниже значения для флажка ввода, и он работает.

<input type="checkbox" name="remove[]" value="<?php echo $pro_id; ?> ">
1

попробуй это поможет тебе

$ip = getIp();
if (isset($_POST['update_cart'])) {
foreach ($_POST['remove'] as $remove_id) {
$delete_product = "delete from cart where p_id=".$remove_id." AND ip_add=".$ip;
$run_delete = mysqli_query($db, $delete_product);
if ($run_delete) {
echo "<script>window.open('cart.php','_self')</script>";
}
}
}
0
По вопросам рекламы [email protected]