1

我正在创建一个带有购物车的网站,我成功地将商品添加到购物篮中,但我希望将商品中的购物篮同时插入到我的数据库中的订单表中,这有效,但每次我刷新页面或四处移动时不同的页面 不断插入当前在 basked 中的相同项目。

我允许用户从购物篮中删除项目,但我希望同样的事情发生在我的数据库表中。

这是我的代码,请分析并指出解决方案 THX。

购物车.php:

if (isset($_GET['add'])){
    $quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']);
    while($quantity_row = mysql_fetch_assoc($quantity)){
        if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){
            $_SESSION['cart_'.$_GET['add']]+='1'; 
        }
    }
}

if (isset($_GET['add'])){
    $qq = mysql_query('SELECT * FROM users');
    while($user_rows = mysql_fetch_assoc($qq)){
        $grr = $_SESSION['username'];
        if($user_rows['username'] == $grr){
        $z = $user_rows['first_name'];
        $zz = $user_rows['last_name'];
            }
        }
    $q = mysql_query('SELECT product_name, product_qua, product_price from products WHERE product_id='.$_GET['add']);
    while($prod_rows = mysql_fetch_assoc($q)){

        $x = $prod_rows['product_name'];
        $xx = $prod_rows['product_price'];
        $xxx = $prod_rows['product_qua'];

        $order = "INSERT INTO orders (order_user_first_name, order_user_last_name, order_product_name, order_product_price, order_product_quantity ) VALUES ('$z','$zz','$x','$xx','$xxx')";
        mysql_query($order);
    }


}



if(isset($_GET['remove'])){
    $_SESSION['cart_'.$_GET['remove']]--;
}

上面的代码不是文件中的所有代码,而是负责我要实现的部分

问候

4

4 回答 4

2

听起来您在 URL 中传递变量,当您浏览站点时,这些变量将继续传递。也许您应该在添加项目后执行重定向,这样它就不会维护变量?

于 2013-03-20T20:44:20.700 回答
1

事情就是这样,您的代码完全按照您的要求执行。您正在使用$_GET,而是将数据发布到数据库中。

我使用$_GET的方式是当我需要从服务器中选择数据或检索数据时。当我需要将数据发布到服务器时,我使用$_POST 。

解决您的问题的方法是创建一个将数据发布到其中的脚本,然后进行重定向以避免重新插入表中。

于 2013-03-20T19:45:34.277 回答
0

你应该尝试 $_POST 而不是 $_GET 吗?

于 2013-03-20T19:44:37.470 回答
-1

改用. $_GET_$_POST

解决您的问题的方法是创建一个将数据发布到其中的脚本,然后进行重定向以避免重新插入表中。

于 2017-04-08T22:00:35.853 回答