0

セッションを使用して、カートに追加されたアイテムの数をカウントしたいと考えています。以下に、タイトルと説明とともにデータベースから product_id を取得する送信ボタンがあります。

$query = 'SELECT * FROM products ORDER BY date_added DESC'; 

    // Run the query:
    if($r = mysql_query($query,$dbc)) {
        while ($row = mysql_fetch_array($r)) {   
            // Print out the returned results:
            print "<p><h3>{$row['title']}</h3> {$row['description']}<br />
                <form action='add_to_cart.php' method='get'>
                    <input type='hidden' name='add2cart' value='{$row['product_id']}' />
                    <input type='submit' value='Add to Cart' />
                </form>
           </p><hr />\n";
        }     
    }

カートに追加ボタンが送信されたときにフォームを処理するために、以下をセッションに変換するにはどうすればよいですか。私が作成したこのスクリプトは、ページが呼び出されるか更新されるたびに Cookie をカウントするだけなので、正確ではありません。一意の製品 ID を送信し、セッションを使用してカートにアイテムを追加して、カートに追加ボタンがクリックされたときにのみカート内のアイテムが上がるようにします。

<?php
if(!isset($_COOKIE['countItems'])){
    $Items = 0;
    setcookie('countItems', $Items); 
}
else{
    $Items = ++$_COOKIE['countItems'];  
    setcookie("countItems", $Items);
} 
define('TITLE' , 'Items in cart'); 
include('templates/header.html');
?>
<div id="main">
<?php
require_once('config.php');
$dbc = mysql_connect(DB_HOST , DB_USER , DB_PASSWORD);
mysql_select_db(DB_DATABASE, $dbc);


if(isset($_COOKIE['countItems'])){
    print "<p>You have $Items items in your shopping cart </p>";
    print "<p><a href='store.php'>Continue Shopping</a></p>";
}  
else{
    print "You have not added any items into your cart.";
}  

?> 

表示されているものを出力するために必要なだけです。アイテム化されている必要はありません。カートにあるアイテムの数とIDの数を数えるだけです。

4

1 に答える 1

1
session_start();
if (! isset($_SESSION['countItems']))$_SESSION['countItems'] = 0;
else $_SESSION['countItems']++;
$Items = $_SESSION['countItems'];

次に、define('TITLE' , 'Items in cart'); に進みます。

于 2012-05-11T00:49:22.763 に答える