-
-
/** - * PHP 장바구니
- * bbs.it-home.org 편집
- */
/ /장바구니 세션 생성 코드
- 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 { //장바구니 클래스 시작
- 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을 반환
- */
- } else {
- $row = mysql_fetch_object( $result);
- return $row->Quantity;
- /*
- 발견되면 해당 항목의 수량을 반환
- mysql_fetch_object 함수를 설명할 필요가 있습니다(아래에서 사용됩니다):
- [mysql_fetch_object()는 mysql_fetch_array()와 유사하지만 한 가지 차이점이 있습니다. 배열 대신 객체를 반환한다는 것입니다.】
- 레코드의 특정 필드를 가져오려면 배열과 같은 첨자를 사용하는 대신 "->"를 사용해야 합니다.
- */
- }
- }
- 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', ' $퀀티') ;
- mysql_query ( $ query);
- /*차에 없으면 항목을 차에 추가하세요.*/
- } else {
- $Quantity = $qty; //차에 없으면 수량을 추가하세요. 원본으로
- $query = UPDATE $table SET 수량=' $퀀티티' WHERE 세션=' $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);
- /*
- PHP 장바구니에서 이 유형의 항목 삭제
- */
- }
- function 수정_수량( $table, $session, $product, $Quantity) {
- /*
- 항목 수량 수정(테이블 이름, 세션, 항목, 수량)
- */
- $query = UPDATE $table SET Quantity=' $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이면 판단 가격을 하나씩 계산하고
- */
- $query = SELECT Price FROM Inventory WHERE product=' $row->product' ;
- $invResult = mysql_query( $query);
- / *
- 인벤토리 테이블에서 품목 가격 찾기
- */
- $row_price = mysql_fetch_object( $invResult);
- $total = ( $row_price->price * $row-> 수량);
- /*
- 총 가격 = 상품 가격 * 상품 수량
- (이해하실 수 있어야 합니다 :) )
- */
- }
- }
- return $total; //총 가격을 반환합니다
- }
- function display_contents( $table, $session) {
- /*
- 자동차에 있는 모든 항목에 대한 자세한 정보 가져오기
- */
- $count = 0;
- /*
- 아이템 수량 계산
- 이 변수는 아이템 개수를 세는 데 사용될 뿐만 아니라 더 중요한 것은 각 항목을 구별하려면 반환 값 배열의 첨자를 사용하세요!
- */
- $query = SELECT * FROM $table WHERE session=' $session' ORDER BY id ;
- $result = mysql_query( $query);
- /*
- car first
- */
- 의 모든 항목 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[total][ $count] = ( $row_inventory->price * $row -> 수량);
- $contents[description][ $count] = $row_inventory->description;
- /*
- 항목에 대한 모든 세부 정보를 $contents 배열에 넣습니다.
- $contents는 2차원 배열
- 첫 번째 첨자 세트는 각 항목에 대한 서로 다른 정보(예: 항목 이름, 가격, 수량 등)를 구분합니다.
- 두 번째 첨자 세트는 서로 다른 항목을 구분합니다(이것은 다음의 기능입니다). 앞서 정의한 $count 변수)
- */
- $count ; //항목 수에 1을 더한 값(즉, 다음 항목)
- }
- $total = $this->cart_total( $ table, $session);
- $contents[final] = $total;
- /*
- 동시에 위의 cart_total 함수를 호출하여 총 가격을 계산
- 하고 $ 내용 배열
- */
- return $contents;
- /*
- 배열 반환
- */
- }
- function num_items( $table, $session) {
- /*
- 항목 유형의 총 개수를 반환합니다(즉, 두 개의 동일한 항목을 하나로 계산하는 것은 말도 안 되는 것 같습니다 - -!)
- */
- $query = SELECT * FROM $table WHERE session=' $session' ;
- $result = mysql_query( $query);
- $num_rows = mysql_num_rows( $result);
- return $num_rows;
- /*
- 안에 있는 모든 항목을 꺼냅니다. car 및 작업 효과 가져오기 데이터베이스 행 수, 즉 총 항목 수
- */
- }
- function 퀀트_items( $table, $session) {
- /*
- 은 모든 항목의 총 개수를 반환합니다. 즉, 두 개의 동일한 항목도 두 개의 항목으로 계산됩니다. -#)
- */
- $Quant = 0;//총 항목 수량
- $query = SELECT * FROM $table WHERE 세션=' $session' ;
- $result = mysql_query( $query);
- while( $row = mysql_fetch_object( $result)) {
- /*
- 가져오기 각 항목을 하나씩
- */
- $Quant = $ row->수량; //전체 수량에 항목의 수량을 더합니다.
- }
- return $Quant; 총 수량
- }
- }
- ?> p>
-
코드 복사
|