繁体   English   中英

每次刷新页面时,PHP Mysql新行都会插入数据库表中

[英]PHP Mysql New Row Inserted into database table every time i refresh the page

我正在创建一个带有购物车的网站,我设法成功地将商品添加到购物篮中,但是我希望同时将商品中的购物篮插入数据库中的orders表中,这可以正常工作,但是每次刷新页面或四处移动时在不同页面中,不断插入当前已取入的相同项目。

我允许用户从购物篮中删除项目,但我又想在数据库表中进行同样的操作。

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

cart.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']]--;
}

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

问候

听起来您好像在URL中传递变量,并且在浏览网站时,这些变量仍在传递。 也许您应该在添加项目后执行重定向,这样它就不会维护vars吗?

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

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

解决您的问题的方法是拥有一个脚本,您可以将数据发布到该脚本中,然后进行重定向,以避免重新插入到Table中。

您应该尝试使用$ _POST而不是$ _GET吗?

使用$_GET代替$_POST

解决您的问题的方法是拥有一个脚本,您可以将数据发布到该脚本中,然后进行重定向,以避免重新插入到Table中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM