>백엔드 개발 >PHP 튜토리얼 >PHP 장바구니 구현 코드의 예(세션 모드)

PHP 장바구니 구현 코드의 예(세션 모드)

WBOY
WBOY원래의
2016-07-25 08:59:361003검색
  1. /**

  2. * PHP 장바구니
  3. * bbs.it-home.org 편집
  4. */

  5. / /장바구니 세션 생성 코드

  6. if(! $session && ! $scid) {
  7. /*
  8. 세션은 각 장바구니를 구분하는 데 사용되며, 이는 각 장바구니의 ID 번호와 동일합니다. scid는 각 장바구니의 이름으로 간주될 수 있는 장바구니 ID 번호를 식별하는 데에만 사용됩니다.
  9. 장바구니의 ID와 세션 값이 모두 존재하지 않으면 새 장바구니가 생성됩니다.
  10. */
  11. $session = md5(uniqid(rand()));
  12. /*
  13. 고유 장바구니 세션 번호 생성
  14. rand()는 먼저 난수를 생성한 다음 uniqid() 난수를 기반으로 고유한 문자열을 생성하고 마지막으로 해당 문자열에 대해 md5
  15. */
  16. SetCookie(scid, $session, time() 14400);
  17. /*
  18. 을 수행합니다. 장바구니 설정 cookie
  19. 변수 이름: scid(여기서 $ 기호가 누락된 것이 아닐까요? =》수정: scid에 "" 추가)
  20. 변수 값: $session
  21. 유효 시간: 현재 시간 14400초(이내) 4시간)
  22. setcookie 함수의 자세한 사용법은 PHP 매뉴얼을 참고하세요~
  23. */
  24. }
  25. class Cart { //장바구니 클래스 시작
  26. function check_item( $table , $session, $product) {
  27. /*
  28. 항목 확인(테이블 이름, 세션, 항목)
  29. */
  30. $query = SELECT * FROM $table WHERE session=' $session' AND product=' $product' ;
  31. /*
  32. '장바구니'에 '상품'이 있는지 '테이블'을 보면 알 수 있습니다.
  33. 즉, 해당 상품이 쇼핑에 담겼는지 여부입니다. 장바구니
  34. */
  35. $result = mysql_query( $query);
  36. if(! $result) {
  37. return 0;
  38. }
  39. /*
  40. 쿼리 실패
  41. */
  42. $numRows = mysql_num_rows( $result);
  43. if( $numRows == 0) {
  44. return 0;
  45. /*
  46. 찾지 못하면 0을 반환
  47. */
  48. } else {
  49. $row = mysql_fetch_object( $result);
  50. return $row->Quantity;
  51. /*
  52. 발견되면 해당 항목의 수량을 반환
  53. mysql_fetch_object 함수를 설명할 필요가 있습니다(아래에서 사용됩니다):
  54. [mysql_fetch_object()는 mysql_fetch_array()와 유사하지만 한 가지 차이점이 있습니다. 배열 대신 객체를 반환한다는 것입니다.】
  55. 레코드의 특정 필드를 가져오려면 배열과 같은 첨자를 사용하는 대신 "->"를 사용해야 합니다.
  56. */
  57. }
  58. }
  59. function add_item( $table, $session, $product, $Quantity) {
  60. /*
  61. 새 항목 추가(테이블 이름, 세션, 항목, 수량)
  62. */
  63. $qty = $this->check_item( $ table, $session, $product);
  64. /*
  65. 위 함수를 호출하고 먼저 이 유형의 항목이 자동차에 실렸는지 확인하세요
  66. */
  67. if( $qty == 0) {
  68. $query = INSERT INTO $table(세션, 제품, 수량) VALUES ;
  69. $query .= (' $session', ' $product', ' $퀀티') ;
  70. mysql_query ( $ query);
  71. /*차에 없으면 항목을 차에 추가하세요.*/
  72. } else {
  73. $Quantity = $qty; //차에 없으면 수량을 추가하세요. 원본으로
  74. $query = UPDATE $table SET 수량=' $퀀티티' WHERE 세션=' $session' AND ;
  75. $query .= product=' $product' ;
  76. mysql_query( $query) ;
  77. /*
  78. 데이터베이스 수정
  79. */
  80. }
  81. }
  82. function delete_item( $table, $session, $product) {
  83. /*
  84. 항목 삭제(테이블 이름, 세션, 항목)
  85. */
  86. $query = DELETE FROM $table WHERE session=' $session' AND product=' $product' ;
  87. mysql_query( $query);
  88. /*
  89. PHP 장바구니에서 이 유형의 항목 삭제
  90. */
  91. }
  92. function 수정_수량( $table, $session, $product, $Quantity) {
  93. /*
  94. 항목 수량 수정(테이블 이름, 세션, 항목, 수량)
  95. */
  96. $query = UPDATE $table SET Quantity=' $Quantity' WHERE session=' $session' ;
  97. $query .= AND product=' $product' ;
  98. mysql_query( $query);
  99. /*
  100. 항목 수량을 매개변수의 값으로 수정
  101. */
  102. }
  103. function clear_cart( $table, $ session) {
  104. /*
  105. 장바구니 지우기(할 말 없음)
  106. */
  107. $query = DELETE FROM $table WHERE session=' $ session' ;
  108. mysql_query( $query);
  109. }
  110. function cart_total( $table, $session) {
  111. /*
  112. 차량에 있는 품목의 총 가격
  113. */
  114. $query = SELECT * FROM $table WHERE session=' $session' ;
  115. $result = mysql_query( $query);
  116. /*
  117. 먼저 차에 있는 물건을 모두 꺼내세요
  118. */
  119. if(mysql_num_rows( $result) > 0) {
  120. while( $row = mysql_fetch_object( $result)) {
  121. /*
  122. 항목 개수 > 0이면 판단 가격을 하나씩 계산하고
  123. */
  124. $query = SELECT Price FROM Inventory WHERE product=' $row->product' ;
  125. $invResult = mysql_query( $query);
  126. / *
  127. 인벤토리 테이블에서 품목 가격 찾기
  128. */
  129. $row_price = mysql_fetch_object( $invResult);
  130. $total = ( $row_price->price * $row-> 수량);
  131. /*
  132. 총 가격 = 상품 가격 * 상품 수량
  133. (이해하실 수 있어야 합니다 :) )
  134. */
  135. }
  136. }
  137. return $total; //총 가격을 반환합니다
  138. }
  139. function display_contents( $table, $session) {
  140. /*
  141. 자동차에 있는 모든 항목에 대한 자세한 정보 가져오기
  142. */
  143. $count = 0;
  144. /*
  145. 아이템 수량 계산
  146. 이 변수는 아이템 개수를 세는 데 사용될 뿐만 아니라 더 중요한 것은 각 항목을 구별하려면 반환 값 배열의 첨자를 사용하세요!
  147. */
  148. $query = SELECT * FROM $table WHERE session=' $session' ORDER BY id ;
  149. $result = mysql_query( $query);
  150. /*
  151. car first
  152. */
  153. 의 모든 항목 while( $row = mysql_fetch_object( $result)) {
  154. /*
  155. 각 항목에 대한 자세한 정보를 별도로 가져옵니다
  156. */
  157. $query = SELECT * FROM Inventory WHERE product=' $row->product' ;
  158. $result_inv = mysql_query( $query);
  159. /*
  160. 인벤토리 테이블에서 항목에 대한 관련 정보 찾기
  161. */
  162. $row_inventory = mysql_fetch_object( $result_inv);
  163. $contents[product][ $count] = $row_inventory->product;
  164. $contents[price][ $count] = $row_inventory- >가격;
  165. $contents[수량][ $count] = $row->수량;
  166. $contents[total][ $count] = ( $row_inventory->price * $row -> 수량);
  167. $contents[description][ $count] = $row_inventory->description;
  168. /*
  169. 항목에 대한 모든 세부 정보를 $contents 배열에 넣습니다.
  170. $contents는 2차원 배열
  171. 첫 번째 첨자 세트는 각 항목에 대한 서로 다른 정보(예: 항목 이름, 가격, 수량 등)를 구분합니다.
  172. 두 번째 첨자 세트는 서로 다른 항목을 구분합니다(이것은 다음의 기능입니다). 앞서 정의한 $count 변수)
  173. */
  174. $count ; //항목 수에 1을 더한 값(즉, 다음 항목)
  175. }
  176. $total = $this->cart_total( $ table, $session);
  177. $contents[final] = $total;
  178. /*
  179. 동시에 위의 cart_total 함수를 호출하여 총 가격을 계산
  180. 하고 $ 내용 배열
  181. */
  182. return $contents;
  183. /*
  184. 배열 반환
  185. */
  186. }
  187. function num_items( $table, $session) {
  188. /*
  189. 항목 유형의 총 개수를 반환합니다(즉, 두 개의 동일한 항목을 하나로 계산하는 것은 말도 안 되는 것 같습니다 - -!)
  190. */
  191. $query = SELECT * FROM $table WHERE session=' $session' ;
  192. $result = mysql_query( $query);
  193. $num_rows = mysql_num_rows( $result);
  194. return $num_rows;
  195. /*
  196. 안에 있는 모든 항목을 꺼냅니다. car 및 작업 효과 가져오기 데이터베이스 행 수, 즉 총 항목 수
  197. */
  198. }
  199. function 퀀트_items( $table, $session) {
  200. /*
  201. 은 모든 항목의 총 개수를 반환합니다. 즉, 두 개의 동일한 항목도 두 개의 항목으로 계산됩니다. -#)
  202. */
  203. $Quant = 0;//총 항목 수량
  204. $query = SELECT * FROM $table WHERE 세션=' $session' ;
  205. $result = mysql_query( $query);
  206. while( $row = mysql_fetch_object( $result)) {
  207. /*
  208. 가져오기 각 항목을 하나씩
  209. */
  210. $Quant = $ row->수량; //전체 수량에 항목의 수량을 더합니다.
  211. }
  212. return $Quant; 총 수량
  213. }
  214. }
  215. ?>
코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.