ホームページ >バックエンド開発 >PHPチュートリアル >タオバオをショッピング カートに追加する方法 php ショッピング カートの例 (Shen Jing)
if(! $session && ! $scid) {
/*
session は各ショッピング カートを区別するために使用されます。これは各カートの ID 番号に相当します。
scid はショッピング カートの ID 番号を識別するためにのみ使用されます。各カートの名前とみなされます
ショッピングカートの ID とセッション値の両方が存在しない場合、新しいショッピングカートが生成されます
*/
$session = md5(uniqid(rand())); *
一意のショッピング カート セッション番号を生成します
rand() は最初に乱数を生成し、次に uniqid() が乱数に基づいて一意の文字列を生成し、最後に文字列に対して md5 を実行します
*/
SetCookie(scid , $session , time() + 14400);
/*
ショッピングカートのクッキーを設定する
変数名: scid (ここに$記号が抜けているのかな? =》修正: scidに""を追加)
変数の値: $session
有効時間:現在時刻+14400秒(4時間以内)
setcookie関数の詳しい使い方はphpマニュアルを参照してください〜
*/
}
class Cart { //ショッピングカートクラスを開始
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 = = 0) {
return 0; *
見つからない場合は 0 を返します
*/
} else {
$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) {
/*
新しいアイテムを追加 (テーブル名、セッション、アイテム、数量)
*/
$qty = $this-> ;check_item( $table, $session, $product);
/*
上記の関数を呼び出して、まずこのタイプのアイテムが車に置かれているかどうかを確認します
*/
if( $qty == 0) {
$query = INSERT INTO $table (セッション、製品、数量) VALUES ;
$query .= (' $session', ' $product', ' $quantity') ;
mysql_query( $query);車にある場合は、車に商品を追加します*/
} else {
$quantity += $qty //ある場合は、元の基準で数量を増やします
$query = UPDATE $table SETquantity=' $数量' WHERE session =' $session' ;
$query .= product=' $product' ;
/*
そしてデータベースを変更します
*/
}
}
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' ; 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[価格][ $count] = $row_inventory->価格;
$contents[数量][ $count] = $row->数量;
$contents[合計][ $count] = ( $ row_inventory->price * $row->quantity);
$contents[description][ $count] = $row_inventory->description;
アイテムに関するすべての詳細情報を $contents 配列に入れます
$内容は 2 次元配列です
最初の添字セットは、各商品に関するさまざまな情報 (商品名、価格、数量など) を区別します
2 番目の添字セットは、さまざまな商品を区別します (これは前の定義された $count 変数)
*/
$count++; // アイテムの数を 1 つ増やします (つまり、次のアイテム)
}
$total = $this->cart_total( $table, $session); [final] = $total;
同時に上記のcart_total関数を呼び出し、合計金額を計算して$contents配列に入れます
*/
return $contents;
配列を返します。 */
}
function num_items( $table, $session) {
/*
項目タイプの合計数を返します (つまり、2 つの同一の項目を 1 つとして数えるのはナンセンスです - -!)
*/
$query = SELECT * FROM $table WHERE session=' $session' ;
$num_rows = mysql_num_rows( $result);
内のすべての項目を取り出します。 car を実行し、操作の影響を受けるものを取得します。 データベースの行数、つまりアイテムの総数 (何も言う必要はありません)
*/
}
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; // 合計金額を返します
}
}
上記では、淘宝網をショッピングカートに追加する方法の例 (Shen Jing) を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。