应用实例--1 购物车

  • 来源: 互联网 作者: rocket   2008-03-17/09:24
  • PHP/MySQL 购物车程序
    <?
    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. */

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多