-
-
/** - * php shopping cart
- * Edit bbs.it-home.org
- */
//Shopping cart session generation code
- if(! $session && ! $ scid) {
- /*
- session is used to distinguish each shopping cart, which is equivalent to the ID number of each cart;
- scid is only used to identify a shopping cart ID number, which can be regarded as the name of each cart;
- when When both the id and session value of the shopping cart do not exist, a new shopping cart is generated
- */
- $session = md5(uniqid(rand()));
- /*
- Generates a unique shopping cart session number
- rand() first generates a random number, uniqid() then generates a unique string based on the random number, and finally performs md5 on the string
- */
- SetCookie(scid, $session, time() + 14400);
- /*
- Set the shopping cart cookie
- Variable name: scid (I wonder if there is a $ sign missing here? =》Correction: Add "" to scid)
- Variable value: $session
- Valid time: Current time + 14400 seconds (within 4 hours)
- For detailed usage of the setcookie function, please refer to the PHP manual~
- */
- }
- class Cart { //Start the shopping cart class
- function check_item( $table, $session, $product) {
- /*
- Check item (table name, session, item)
- */
- $query = SELECT * FROM $table WHERE session=' $session' AND product=' $product' ;
- /*
- Look Check whether the 'product' is in the 'shopping cart' in the 'table'
- That is, whether the product has been put into the shopping cart
- */
- $result = mysql_query( $query);
- if(! $result) {
- return 0;
- }
- /*
- Query failed
- */
- $numRows = mysql_num_rows( $result);
- if( $numRows == 0) {
- return 0;
- /*
- If not found, return 0
- */
- } else {
- $row = mysql_fetch_object( $result);
- return $row->quantity;
- /*
- If found, return the quantity of the item
- It is necessary to explain the mysql_fetch_object function here (also below) Will be used):
- [mysql_fetch_object() is similar to mysql_fetch_array(), with one difference - it returns an object instead of an array.】
- To get a certain field in a record, you should use "->" instead of using subscripts like an array
- */
- }
- }
- function add_item( $table, $session, $product, $quantity) {
- /*
- Add new items (table name, session, item, quantity)
- */
- $qty = $this->check_item( $table, $session, $product);
- /*
- Call the above function, First check whether such items have been put into the car
- */
- if( $qty == 0) {
- $query = INSERT INTO $table (session, product, quantity) VALUES ;
- $query .= (' $ session', ' $product', ' $quantity') ;
- mysql_query( $query);
- /*If it is not in the car, add the item to the car*/
- } else {
- $quantity += $qty; //If there is, increase the quantity on the original basis
- $query = UPDATE $table SET quantity=' $quantity' WHERE session=' $session' AND ;
- $query .= product=' $product' ;
- mysql_query( $query);
- /*
- And modify the database
- */
- }
- }
- function delete_item( $table, $session, $product) {
- /*
- Delete item (table name, session, item)
- */
- $query = DELETE FROM $table WHERE session=' $session' AND product=' $product' ;
- mysql_query( $query);
- /*
- Delete this type of item in the php shopping cart
- */
- }
- function modify_quantity ($table, $session, $product, $quantity) {
- /*
- Modify item quantity (table name, session, item, quantity)
- */
- $query = UPDATE $table SET quantity=' $quantity' WHERE session =' $session' ;
- $query .= AND product=' $product' ;
- mysql_query( $query);
- /*
- Modify the item quantity to the value in the parameter
- */
- }
- function clear_cart( $ table, $session) {
- /*
- Clear the shopping cart (nothing to say)
- */
- $query = DELETE FROM $table WHERE session=' $session' ;
- mysql_query( $query);
- }
- function cart_total( $ table, $session) {
- /*
- Total price of items in the car
- */
- $query = SELECT * FROM $table WHERE session=' $session' ;
- $result = mysql_query( $query);
- /*
- First Take out all the items in the car
- */
- if(mysql_num_rows( $result) > 0) {
- while( $row = mysql_fetch_object( $result)) {
- /*
- If the number of items > 0, then judge one by one Price and calculate
- */
- $query = SELECT price FROM inventory WHERE product=' $row->product' ;
- $invResult = mysql_query( $query);
- /*
- Find the item from the inventory table The price of
- */
- $row_price = mysql_fetch_object( $invResult);
- $total += ( $row_price->price * $row->quantity);
- /*
- Total price+= price of the item * price of the item Quantity
- (Everyone should be able to understand it:) )
- */
- }
- }
- return $total; //Return the total price
- }
- function display_contents($table, $session) {
- /*
- Get information about Chezhong Detailed information of all items
- */
- $count = 0;
- /*
- Item quantity count
- Note that this variable is not only used to count the number of items, but more importantly, it will be used as a subscript in the return value array , used to distinguish each item!
- */
- $query = SELECT * FROM $table WHERE session=' $session' ORDER BY id ;
- $result = mysql_query( $query);
- /*
- First take out all the items in the car
- */
- while( $ row = mysql_fetch_object( $result)) {
- /*
- Fetch detailed information for each item separately
- */
- $query = SELECT * FROM inventory WHERE product=' $row->product' ;
- $result_inv = mysql_query ( $query);
- /*
- Find related information about the item from the inventory table
- */
- $row_inventory = mysql_fetch_object( $result_inv);
- $contents[product][ $count] = $row_inventory-> ;product;
- $contents[price][ $count] = $row_inventory->price;
- $contents[quantity][ $count] = $row->quantity;
- $contents[total][ $count] = ($row_inventory->price * $row->quantity);
- $contents[description][$count] = $row_inventory->description;
- /*
- Put all the details about the item into $contents Array
- $contents is a two-dimensional array
- The first set of subscripts distinguishes the different information of each item (such as item name, price, quantity, etc.)
- The second set of subscripts distinguishes different items (this is the previous The function of the defined $count variable)
- */
- $count++; //The number of items plus one (i.e. the next item)
- }
- $total = $this->cart_total( $table, $session);
- $contents [final] = $total;
- /*
- Call the cart_total function above at the same time, calculate the total price
- and put it into the $contents array
- */
- return $contents;
- /*
- return the array
- */
- }
- function num_items( $table, $session) {
- /*
- Returns the total number of item types (that is, it seems nonsense to count two identical items as one - -!)
- */
- $query = SELECT * FROM $table WHERE session=' $session' ;
- $result = mysql_query( $query);
- $num_rows = mysql_num_rows( $result);
- return $num_rows;
- /*
- Take out all the items in the car and get the ones affected by the operation The number of database rows, that is, the total number of items
- */
- }
- function quant_items($table, $session) {
- /*
- returns the total number of all items (that is, two identical items are also counted as two items - -#)
- */
- $quant = 0;//Total quantity of items
- $query = SELECT * FROM $table WHERE session=' $session' ;
- $result = mysql_query( $query);
- while( $row = mysql_fetch_object( $ result)) {
- /*
- Take out each item one by one
- */
- $quant += $row->quantity; //Add the quantity of the item to the total
- }
- return $quant; //Return Total amount
- }
- }
- ?>
-
Copy code
|