1

ショッピングカートを使用してWebサイトを作成していて、バスケットにアイテムを連続して追加できましたが、アイテムのバスケットをデータベースの注文テーブルに同時に挿入したいのですが、これは機能しますが、ページを更新したり移動したりするたびに異なるページ現在日光浴の中にある同じアイテムが常に挿入されます。

ユーザーがバスケットからアイテムを削除することを許可していますが、データベーステーブルでも同じことをしたいと思っています。

これが私のコードです。それを分析して、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

4 に答える 4

2

URLで変数を渡しているように見えますが、サイトを閲覧している間、それらの変数は引き続き渡されます。おそらく、アイテムが追加されたらリダイレクトを実行する必要があるので、変数は維持されませんか?

于 2013-03-20T20:44:20.700 に答える
1

これが問題です。コードは、指示どおりに実行します。$ _GETを使用しており、代わりにデータベースにデータを転記しています。

$ _GETを使用する方法は、データを選択したり、サーバーからデータを取得したりする必要がある場合です。サーバーにデータを投稿する必要がある場合は、 $_POSTを使用します。

問題の解決策は、データをPOSTしてから、テーブルに再挿入されないようにリダイレクトするスクリプトを用意することです。

于 2013-03-20T19:45:34.277 に答える
0

$_GETの代わりに$_POSTを試してみるべきでしょうか?

于 2013-03-20T19:44:37.470 に答える
-1

$_GET代わりに使用してください$_POST

問題の解決策は、データをPOSTしてから、テーブルに再挿入されないようにリダイレクトするスクリプトを用意することです。

于 2017-04-08T22:00:35.853 に答える