ホームページ  >  記事  >  バックエンド開発  >  PHPショッピングカート実装コード例(セッションモード)

PHPショッピングカート実装コード例(セッションモード)

WBOY
WBOYオリジナル
2016-07-25 08:59:36978ブラウズ
  1. /**

  2. * php ショッピング カート
  3. * bbs.it-home.org を編集
  4. */

  5. //ショッピングカートセッション生成コード

  6. if(! $session && ! $ scid ) {
  7. /*
  8. session は各ショッピング カートを区別するために使用され、各カートの ID 番号に相当します。
  9. scid はショッピング カート ID 番号を識別するためにのみ使用され、各カートの名前と見なすことができます。
  10. when ショッピング カートの ID とセッション値の両方が存在しない場合、新しいショッピング カートが生成されます
  11. */
  12. $session = md5(uniqid(rand()));
  13. /*
  14. 一意のショッピング カート セッションを生成しますnumber
  15. rand() は最初に乱数を生成し、次に uniqid() は乱数に基づいて一意の文字列を生成し、最後に文字列に対して md5 を実行します
  16. */
  17. SetCookie(scid, $session, time() + 14400);
  18. /*
  19. ショッピングカートのCookieを設定します
  20. 変数名:scid($記号が抜けているのかな?=》修正:scidに「」を追加)
  21. 変数値:$session
  22. 有効時間:現在時刻+14400秒(4時間以内)
  23. setcookie関数の詳しい使い方はPHPマニュアルを参照してください~
  24. */
  25. }
  26. class Cart { //ショッピングカートを開始しますclass
  27. function check_item( $table, $session, $product ) {
  28. /*
  29. 項目(テーブル名、セッション、項目)を確認
  30. */
  31. $query = SELECT * FROM $table WHERE session=' $session' AND product=' $product' ;
  32. /*
  33. Look かどうかを確認「テーブル」の「ショッピングカート」に「商品」が入っています
  34. つまり、商品がショッピングカートに入れられているかどうか
  35. */
  36. $result = mysql_query( $query);
  37. if(! $result) {
  38. return 0;
  39. }
  40. /*
  41. クエリが失敗しました
  42. */
  43. $numRows = mysql_num_rows( $result);
  44. if( $numRows == 0) {
  45. return 0;
  46. /*
  47. 見つからない場合は、0を返します
  48. */
  49. } else {
  50. $row = mysql_fetch_object( $result);
  51. return $row->quantity;
  52. /*
  53. 見つかったら、アイテムの数量を返します
  54. ここで mysql_fetch_object 関数を説明する必要があります (以下も) 使用されます):
  55. [mysql_fetch_object() は mysql_fetch_array() に似ていますが、1 つの違いがあります - 配列の代わりにオブジェクトを返します。】
  56. レコード内の特定のフィールドを取得するには、配列のような添字を使用する代わりに「->」を使用する必要があります
  57. */
  58. }
  59. }
  60. function add_item( $table, $session, $product, $quantity) {
  61. /*
  62. 新しいアイテム(テーブル名、セッション、アイテム、数量)を追加します
  63. */
  64. $qty = $this->check_item( $table, $session, $product);
  65. /*
  66. 上記の関数を呼び出します、まず、そのようなアイテムが車内に置かれているかどうかを確認してください
  67. */
  68. if( $qty == 0) {
  69. $query = INSERT INTO $table (session, product,数量) VALUES ;
  70. $query .= (' $ session ', ' $product', ' $quantity') ;
  71. mysql_query( $query);
  72. /*車にない場合は、その商品を車に追加します*/
  73. } else {
  74. $quantity += $qty ; // 存在する場合は、元の数量を増やします
  75. $query = UPDATE $table SETquantity=' $quantity' WHERE session=' $session' AND ;
  76. $query .= product=' $product' ;
  77. mysql_query( $query);
  78. /*
  79. そしてデータベースを変更します
  80. */
  81. }
  82. }
  83. function delete_item( $table, $session, $product) {
  84. /*
  85. アイテム(テーブル名、セッション、アイテム)を削除します
  86. */
  87. $query = DELETE FROM $table WHERE session=' $session' AND product=' $product' ;
  88. mysql_query( $query);
  89. /*
  90. PHP ショッピング カート内のこのタイプのアイテムを削除します
  91. */
  92. }
  93. functionmodify_quantity ($table, $session, $product, $quantity) {
  94. /*
  95. 品目の数量を変更(テーブル名、セッション、品目、数量)
  96. */
  97. $query = UPDATE $table SET数量=' $数量' WHERE session =' $session' ;
  98. $query .= AND product=' $product' ;
  99. mysql_query( $query);
  100. /*
  101. アイテムの数量をパラメータの値に変更します
  102. */
  103. }
  104. function clear_cart( $ table, $session) {
  105. /*
  106. ショッピングカートをクリアします(何も言うことはありません)
  107. */
  108. $query = DELETE FROM $table WHERE session=' $session' ;
  109. mysql_query( $query);
  110. }
  111. function cart_total( $ table, $session) {
  112. /*
  113. 車内アイテムの合計金額
  114. */
  115. $query = SELECT * FROM $table WHERE session=' $session' ;
  116. $result = mysql_query( $ query);
  117. /*
  118. まず車の中の物を全て取り出します
  119. */
  120. if(mysql_num_rows( $result) > 0) {
  121. while( $row = mysql_fetch_object( $result)) {
  122. /*
  123. Ifアイテム数 > 0 の場合、1 つずつ価格を判断して計算します
  124. */
  125. $query = SELECT 価格 FROM 在庫 WHERE product=' $row->product' ;
  126. $invResult = mysql_query( $query);
  127. / *
  128. 在庫テーブルからアイテムを検索
  129. */
  130. $row_price = mysql_fetch_object( $invResult);
  131. $total += ( $row_price->price * $row->quantity);
  132. /*
  133. 合計価格+= この商品の価格 * この商品の価格 数量
  134. (誰でも理解できるはず:) )
  135. */
  136. }
  137. }
  138. return $total //合計価格を返す
  139. }
  140. function display_contents($ table, $session) {
  141. /*
  142. 車中に関する情報を取得する すべてのアイテムの詳細情報を取得します
  143. */
  144. $count = 0;
  145. /*
  146. アイテム数量カウント
  147. この変数はアイテムの数をカウントするためにのみ使用されるわけではないことに注意してください、しかしもっと重要なのは、これは戻り値の配列の添字として使用され、各項目を区別するために使用されることです。
  148. */
  149. $query = SELECT * FROM $table WHERE session=' $session' ORDER BY id ;
  150. $result = mysql_query( $query);
  151. /*
  152. まず車内の物を全て取り出します
  153. */
  154. while( $ row = mysql_fetch_object( $result)) {
  155. /*
  156. 各アイテムの詳細情報を個別に取得します
  157. */
  158. $query = SELECT * FROM inventory WHERE product=' $row->product' ;
  159. $result_inv = mysql_query ( $query);
  160. /*
  161. 在庫テーブルからアイテムに関する関連情報を検索します
  162. */
  163. $row_inventory = mysql_fetch_object( $result_inv);
  164. $contents[product][ $count] = $row_inventory->product ;product ;
  165. $contents[価格][ $count] = $row_inventory->価格;
  166. $contents[数量][ $count] = $row->数量;
  167. $contents[合計][ $count] = ($ row_inventory->price * $row->quantity);
  168. $contents[description][$count] = $row_inventory->description;
  169. /*
  170. アイテムに関するすべての詳細を $contents 配列に入れます
  171. $contentsは 2 次元配列です。
  172. 最初の添字セットは、各商品のさまざまな情報 (商品名、価格、数量など) を区別します。
  173. 2 番目の添字セットは、さまざまな商品を区別します (これは前の関数です)定義された $count 変数)
  174. */
  175. $count++; //アイテムの数に 1 を加えたもの (つまり、次のアイテム)
  176. }
  177. $total = $this->cart_total( $table, $session);
  178. $contents [ Final] = $total;
  179. /*
  180. 上記のcart_total関数を同時に呼び出し、合計金額
  181. を計算し、$contents配列に入れます
  182. */
  183. return $contents;
  184. /*
  185. 配列を返します
  186. * /
  187. }
  188. function num_items( $table, $session) {
  189. /*
  190. 項目タイプの合計数を返します (つまり、2 つの同一の項目を 1 つとして数えるのはナンセンスです - -!)
  191. */
  192. $query = SELECT * FROM $table WHERE session=' $session' ;
  193. $result = mysql_query( $query);
  194. $num_rows = mysql_num_rows( $result);
  195. return $num_rows;
  196. /*
  197. 車内のアイテムをすべて取り出す操作の影響を受けるものを取得しますデータベースの行数、つまりアイテムの総数
  198. */
  199. }
  200. function quant_items($table, $session) {
  201. /*
  202. すべてのアイテムの総数を返します(つまり、2 つの同一のアイテムも 2 つのアイテムとしてカウントされます - -#)
  203. */
  204. $quant = 0;//アイテムの合計数量
  205. $query = SELECT * FROM $table WHERE session=' $session' ;
  206. $ result = mysql_query( $query);
  207. while( $row = mysql_fetch_object( $ result)) {
  208. /*
  209. 項目を一つずつ取り出します
  210. */
  211. $quant += $row->quantity; //追加合計に対する商品の数量
  212. }
  213. return $quant; //合計金額を返す
  214. }
  215. }
  216. ?

コードをコピー


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