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

时间:2013-03-20 19:42:41

标签: php mysql

我正在创建一个带购物车的网站,我管理后连续添加项目到篮子,但我希望项目中的篮子同时插入我的数据库中的订单表,但每次刷新页面都有效或者在不同的页面上移动,不断插入当前在晒太阳内的相同物品。

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

这是我的代码,请分析并指出解决方案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']]--;
}

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

问候

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这就是事情,你的代码完全按照你的要求去做。您正在使用 $ _ GET ,而是将数据发布到数据库中。

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

解决您的问题的方法是使用一个脚本将POST数据输入,然后重定向,以避免重新插入表格。

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

使用$_GET代替$_POST

解决您的问题的方法是使用一个脚本将POST数据输入,然后重定向,以避免重新插入表格。