来源:www.cncfan.com | 2006-1-11 | (有1906人读过)
<? /* shoppingcart.php * * */
if(!$session && !$scid) { $session = md5(uniqid(rand())); SetCookie("scid", "$session", time() + 14400); } /* last number is expiration time in seconds, 14400 sec = 4 hrs */
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; } else { $row = mysql_fetch_object($result); return $row->quantity; } }
function add_item($table, $session, $product, $quantity) { $qty = $this->check_item($table, $session, $product); if($qty == 0) { $query = "INSERT INTO $table (session, product, quantity) VALUES "; $query .= "('$session', '$product', '$quantity') "; mysql_query($query); } else { $quantity += $qty; $query = "UPDATE $table SET quantity='$quantity' WHERE session='$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); }
function modify_quantity($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)) { $query = "SELECT price FROM inventory 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["price"][$count] = $row_inventory->price; $contents["quantity"][$count] = $row->quantity; $contents["total"][$count] = ($row_inventory->price * $row->quantity); $contents["description"][$count] = $row_inventory->description; $count++; } $total = $this->cart_total($table, $session); $contents["final"] = $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; }
function quant_items($table, $session) { $quant = 0; $query = "SELECT * FROM $table WHERE session='$session' "; $result = mysql_query($query); while($row = mysql_fetch_object($result)) { $quant += $row->quantity; } return $quant; } } ?>
/* This part contains a description of how to create the tables on your mysql server.
# MySQL dump 6.0 # # Host: localhost Database: kmartShopper #-------------------------------------------------------- # Server version 3.22.25
# # Table structure for table 'inventory' # CREATE TABLE inventory ( product tinytext NOT NULL, quantity tinytext NOT NULL, id int(4) DEFAULT '0' NOT NULL auto_increment, description tinytext NOT NULL, price float(10,2) DEFAULT '0.00' NOT NULL, category char(1) DEFAULT '' NOT NULL, KEY id (id), PRIMARY KEY (id), KEY price (price) );
# # Table structure for table 'shopping' # CREATE TABLE shopping ( session tinytext NOT NULL, product tinytext NOT NULL, quantity tinytext NOT NULL, card tinytext NOT NULL, id int(4) DEFAULT '0' NOT NULL auto_increment, KEY id (id), PRIMARY KEY (id) ); */
Example <? include("shoppingcart.php"); $cart = new Cart; $mysql_link = mysql_connect("localhost", "wwwrun", ""); $mysql_select_db("kmartShopper", $mysql_link) /* heh, use whatever database name you put the 2 tables under in place of kmartShopper */ ?> /* call functions like $cart->add_item and such, see the code. */
|