//ショッピングカートセッション生成コード
if(! $session && ! $scid) {
/*
session は各ショッピングカートの ID 番号に相当し、識別するためにのみ使用されます。 one ショッピング カート 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
}
/*
クエリが失敗しました
*/
$numRows = mysql_num_rows( $result); {
return 0;
/*
見つからない場合は 0 を返す
*/
} else {
$row->quantity;
見つかった場合は returnアイテムの数量
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; // 合計金額を返します
}
}
http://www.bkjia.com/PHPjc/320144.html
www.bkjia.com
true