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

每次刷新页面时,PHP Mysql都会将新行插入到数据库表中,php,mysql,Php,Mysql,我正在使用购物车创建一个网站,我成功地将项目添加到购物篮中,但我希望项目中的购物篮能够同时插入数据库中的orders表中,这是可行的,但每次我刷新页面或在不同页面上移动时,当前在购物篮中的相同项目都会不断插入 我允许用户从篮子中删除项目,但我还是希望在我的数据库表中发生同样的事情 这是我的代码,请分析它并指出一个解决方案 cart.php: if (isset($_GET['add'])){ $quantity = mysql_query('SELECT product_id, prod

我正在使用购物车创建一个网站,我成功地将项目添加到购物篮中,但我希望项目中的购物篮能够同时插入数据库中的orders表中,这是可行的,但每次我刷新页面或在不同页面上移动时,当前在购物篮中的相同项目都会不断插入

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

这是我的代码,请分析它并指出一个解决方案

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']]--;
}
上面的代码不是文件中的所有代码,而是负责我试图实现的部分


关于

您是否应该尝试$\u POST而不是$\u GET maybe?

问题是,您的代码完全按照您的指示执行。您使用的是$\u GET,而是将数据发布到数据库中

我使用$\u GET的方法是在需要从服务器选择数据或检索数据时使用。当我需要将数据发布到服务器时,我使用$\u POST


问题的解决方案是使用一个脚本,将数据发布到其中,然后重定向回该脚本,以避免重新插入到表中。

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

使用
$\u GET
代替
$\u POST


您的问题的解决方案是使用一个脚本,将数据发布到该脚本中,然后重定向回该脚本,以避免重新插入到表中。

请阅读,因为您当前的代码容易受到SQL注入的影响。共问了34个问题,只有8个答案对您有所帮助?这有点不可能。有了这样的统计数据,没有多少人敢/应该敢帮助你……听起来你在url中传递变量,而当你浏览网站时,这些变量会继续传递。也许你应该在添加项目后执行重新定向,这样它就不会维护VAR了?@JoshuaBurns重定向了一些工作原理:o so thx非常感谢你的建议…….我知道mysql注入,我首先想让事情正常工作,我所做的我创建了一个功能确保它正常工作我改进了代码我继续下一步,最后但并非最不重要的是ITrobus我看到你做了家庭作业祝贺你申请了FBI…………严肃的方面我怎么能接受一些不能解决我问题的答案:)@JoshuaBurns没问题给我在riturn的名单上投一票如果你希望如此:P和thx一旦从get-to-post更改为InOK会导致更多问题,例如错误和无插入OK从get-to-post更改不起作用,但是…..但是重定向似乎解决了问题
header('Location:userhome.php')