ホームページ >php教程 >php手册 >phpショッピングカートの例(Shenjing)

phpショッピングカートの例(Shenjing)

WBOY
WBOYオリジナル
2016-06-13 12:23:45966ブラウズ

if(! $session && ! $scid) {
/*
セッションは各ショッピング カートを識別するために使用されます。これは各カートの ID 番号に相当します。
scid はショッピングを識別するためにのみ使用されます。各カートの名前と見なすことができるカート ID 番号;
ショッピング カートの ID とセッション値の両方が存在しない場合、新しいショッピング カートが生成されます
*/
$session = md5( uniqid(rand()));
/*
一意のショッピング カート セッション番号を生成します
rand() は最初に乱数を生成し、次に uniqid() はその乱数に基づいて一意の番号を生成します数値文字列、最後に md5 文字列
*/
SetCookie(scid, $session, time() 14400)
/*
ショッピング カート Cookie を設定します
変数名 : scid (ここに $ 記号が抜けているのかな? =》訂正: scid に "" を追加する必要があります)
変数値: $session
有効時間: 現在時刻 14400 秒 (4 時間以内)
詳しくはsetcookie 関数の使用法については、PHP マニュアルを参照してください~
*/
}
class Cart { //ショッピング カートの開始 class
function check_item( $table, $session, $product ) {
/*
チェック項目 (テーブル名、セッション、項目)
*/
$query = SELECT * FROM $table WHERE session=' $session' AND product=' $product' ; 🎜>/*
「テーブル」を見て、「ショッピングカート」の中に「商品」があるかどうかを確認します
つまり、商品がショッピングカートに入れられているかどうかを確認します
*/
$result = mysql_query( $query);
if(! $result) {
return 0;
}
/*
クエリが失敗しました
*/
$ numRows = mysql_num_rows( $result);
if( $numRows == 0) {
return 0;
/*
見つからない場合は 0 を返します
*/
} {
$row = mysql_fetch_object( $result);
return $row->quantity;
/*
見つかった場合は、アイテムの数量を返します
ここでの mysql_fetch_object 関数 (以下で使用します):
[mysql_fetch_object() は mysql_fetch_array() に似ていますが、1 つの違いがあります - 配列の代わりにオブジェクトを返します。]
上記の文は PHP マニュアルから引用したものですが、非常にわかりやすいはずです~
簡単に言うと、レコード内の特定のフィールドを取得するには、次のように使用するのではなく、「->」を使用する必要があります。配列。添字
*/
}
}
function add_item( $table, $session, $product, $quantity) {
/*
新しい項目を追加します (テーブル名) , session , item, amount)
*/
$qty = $this->check_item( $table, $session, $product);
/*
上記の関数を呼び出して、 class first アイテムは車に置かれていますか?
*/
if( $qty == 0) {
$query = INSERT INTO $table (session, product, amount) VALUES ; $query . = (' $session', ' $product', ' $quantity') ;
mysql_query( $query); *車にない場合はアイテムを追加します* /
} else {
$quantity = $qty; //はいの場合、元の基準で数量を増やします
$query = UPDATE $table SETquantity=' $quantity' WHERE session=' $session ' AND ;
$query .= product=' $product' ;
mysql_query( $query);
/*
データベースを変更します
*/
}
function delete_item ( $table, $session, $product) {
/*
項目 (テーブル名、セッション、項目) を削除します
*/
$query = DELETE FROM $table WHERE session=' $session ' AND product=' $product' ;
mysql_query( $query)
/*
ショッピング カート内のこのタイプのアイテムを削除します
*/
}
functionmodify_quantity( $ table, $session, $product, $quantity) {
/*
品目の数量を変更 (テーブル名、セッション、品目、数量)
*/
$query = UPDATE $table SETquantity= ' $quantity' WHERE session=' $session' ;
$query .= AND product=' $product' ;
mysql_query( $query); >アイテムの数量をパラメーターの値に変更します
*/
}
function clear_cart( $table, $session) {
/*
ショッピング カートをクリアします (何も言うことはありません)
*/
$ query = DELETE FROM $table WHERE session=' $session' ;
mysql_query( $query)
}
function cart_total( $table, $session); 🎜>/*
车中合計商品価格
*/
$query = SELECT * FROM $table WHERE session=' $session' ;
$result = mysql_query( $query); >/*
最初に車を置きます
*/
if(mysql_num_rows( $result) > 0) {
while( $row = mysql_fetch_object( $result)) {
/*
商品数 > 0 の場合、価格を 1 つずつ判断して計算します
*/
$query = SELECT 価格 FROM 在庫 WHERE product=' $row->product ' ;
$invResult = mysql_query( $query);
/*
在庫テーブルから商品の価格を検索します
*/
$row_price = mysql_fetch_object( $invResult); 🎜>$total = ( $row_price->price * $row->quantity);
/*
合計価格 = 商品の価格 * 商品の数量
(次のようにできるはずです)理解しています)
*/
}
}
return $total; //合計金額を返します
}
function display_contents( $table, $session) {
/*
車内のすべてのアイテムに関する詳細情報を取得します
*/
$count = 0;
/*
アイテム数量カウント
この変数は、車両内のアイテムをカウントするためだけに使用されるわけではないことに注意してください。項目の数ですが、さらに重要なのは、戻り値の配列として使用されることです。添字は各項目を区別するために使用されます。
*/
$query = SELECT * FROM $table WHERE session=' $session' ORDER BY id ;
$result = mysql_query( $query);最初にカート
*/
while( $row = mysql_fetch_object( $result)) {
/*
各アイテムの詳細情報を個別に取得
*/
$query = SELECT * FROM inventory WHERE product=' $row->product' ;
$result_inv = mysql_query( $query);
/*
在庫テーブルからこのアイテムに関する情報を検索します
* /
$row_inventory = mysql_fetch_object( $result_inv);
$contents[product][ $count] = $row_inventory->product;
$contents[price][ $count] = $row_inventory-> ;価格;
$contents[数量][ $count] = $row->数量;
$contents[合計][ $count] = ( $row_inventory->価格 * $row ->数量);
$contents[description][ $count] = $row_inventory->description;
/*
アイテムに関するすべての詳細情報を $contents 配列に入れます
$contents は2 次元配列
添字の最初のセットは、各商品に関するさまざまな情報 (商品名、価格、数量など) を区別します。
添字の 2 セット目は、さまざまな商品を区別します (これは、 $count 変数は前に定義したものです)
*/
$count ; //アイテムの数に 1 を加えたもの (つまり、次のアイテム)
}
$total = $this->cart_total( $table , $session);
$contents[final] = $total;
/*
同時に、上記の cart_total 関数を呼び出して合計金額を計算し、それを $contents に入れます。 array
*/
return $contents;
/*
配列
*/
}
function num_items( $table, $session) {
/ *
項目タイプの合計数を返します (つまり、2 つの同一の項目を 1 つとして数えるのはナンセンスです - -!)
*/
$query = SELECT * FROM $table WHERE session=' $セッション' ;
$result = mysql_query( $query);
$num_rows = mysql_num_rows( $result);
車の中のアイテムをすべて取り出します操作の結果を取得します データベースの行数、つまりアイテムの総数 (何も言うことはありません)
*/
}
function quant_items( $table, $session) {
/*
すべてのアイテムの合計数を返します (つまり、2 つの同一のものも 2 つのアイテムとしてカウントされます - #)
*/
$quant = 0;//アイテムの合計数量
$query = SELECT * FROM $table WHERE session=' $session ' ;
$result = mysql_query( $query);
while( $row = mysql_fetch_object( $result)) {
/ *
各アイテムを 1 つずつ取得します
*/
$quant = $row->quantity; //アイテムの数量が合計数量に追加されます
}
return $ quant; // 合計数量を返します
}
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。