동경 2020-02-29 05:09 采纳率: 0%
浏览 301

在php中如何“挨个”删除数据库信息?

functions.php

$conn = mysqli_connect("localhost:3305","root","1234","dj"); //connect database
function getRealIpUser(){

    switch(true){

        case(!empty($_SERVER['HTTP_X_REAL_IP'])) : return $_SERVER['HTTP_X_REAL_IP'];
        case(!empty($_SERVER['HTTP_CLIENT_IP'])) : return $_SERVER['HTTP_CLIENT_IP'];
        case(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) : return $_SERVER['HTTP_X_FORWARDED_FOR'];

        default : return $_SERVER['REMOTE_ADDR'];

    }

}

cart.php

<include ("functions.php");> 
<div class="shopping-cart">
                <h6>My Cart</h6>
                <hr>
                <?php

                $ip_add = getRealIpUser(); //getRealIpuser from functions.php

                $select_cart = "select * from cart where ip_add='$ip_add'";

                $run_cart = mysqli_query($conn,$select_cart);

                while($row_cart = mysqli_fetch_array($run_cart)){

                    $pro_id = $row_cart['p_id'];

                    $pro_size = $row_cart['size'];

                    $pro_quantity = $row_cart['quantity'];

                  ?>

                        <form action="cart.php" method="post" class="cart-items">
                            <div class="border rounded">
                                <div class="row bg-white">
                                    <div class="col-md-6">
                                        <button type="submit" class="btn btn-warning">Save for Later</button>
                                        <button type="submit" id="<?php echo $pro_id;?>" class="btn btn-danger mx-2" name="remove">Remove</button>
                                    </div>

                                </div>
                            </div>
                        </form>

cart 数据库

加载页面

然后下面是我的错误的代码:

<?php

    global $conn;
    if(isset($_POST['remove'])){

            $delete_product = "delete from cart where p_id='$pro_id'";

            $run_delete = mysqli_query($conn,$delete_product);

            if($run_delete){

                echo "<script>window.open('cart.php','_self')</script>";

            }

}

?>
  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 03:11
    关注

    您需要遍历购物车,并逐个删除相应的产品。在您的cart.php文件中,while循环中的每个表单都应该具有唯一的ID属性,以与每个产品的ID对应。您的删除代码没有传递产品ID,因此无法删除正确的产品。以下是您可以尝试的更新代码:

    <?php
    
    if(isset($_POST['remove'])){
        
        global $conn;
        
        $pro_id = $_POST['remove'];
        $delete_product = "delete from cart where p_id='$pro_id'";
        $run_delete = mysqli_query($conn,$delete_product);
    
        if($run_delete){
            echo "<script>window.open('cart.php','_self')</script>";
        }
    
    }
    
    ?>
    

    请注意,您仍然需要在while循环中的每个表单元素上将产品ID作为ID属性传递,例如:

    <button type="submit" id="<?php echo $pro_id;?>" class="btn btn-danger mx-2" name="remove">Remove</button>
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?