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. */
  
  

时间: 2024-11-02 07:10:06

PHP/MySQL 购物车程序的相关文章

PHP+MySQL 购物车程序实例

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($

PHP/MySQL 购物车

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($tab

MySQL查询优化程序

    4.2 MySQL查询优化程序    在发布一个选择行的查询时, MySQL进行分析,看是否能够对它进行优化,使它执行更快.本节中,我们将研究查询优化程序怎样工作.更详细的信息,可参阅MySQL参考指南中的"Getting Maximum Performance from MySQL",该章描述了MySQL采用的各种优化措施.该章中的信息会不断变化,因为MySQL的开发者不断对优化程序进行改进,因此,有必要经常拜访一下该章,看看是否有可供利用的新技巧.(http://www.m

DBA应当了解的MySQL客户端程序启动选项

许多服务器管理员都知道,MySQL数据库管理系统(RDBMS)是高度灵活的软件块,带有范围广阔的启动选项,可以用来修改相关行为.然而,大部分人却不清楚,标准MySQL客户端带有同等大量的启动选项,其中一些在日常MySQL交互作用中极为有用.这些选项本身不是"秘密",而它们中很多未被使用,甚至其中一些可以显著利于服务器交互作用的过程处理. 表中是其中一些不太知名的MySQL客户程序启动选项.表格中的每一条目解释了每个选项的功能以及用法.这将给予你MySQL应用范围和深度等问题一些想法,帮

mysql数据库-远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上

问题描述 远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上 我是通过远程连接在实验室机房的一台机器(linux操作系统)上,然后在该机器上建立JAVA程序,其中涉及到连接mysql数据库的操作,但是在获取连接时一直提示"Communications link failure",涉及的代码为:connect=DriverManager.getConnection(""jdbc:mysql://localhost:3306/pyq_te

php实现的MySQL通用查询程序_php实例

if(get_magic_quotes_gpc()==1){    ?> <html> <head><title>MySQL通用查询程序</title></head> <body> 注意本程序需要将PHP配置文件(PHP3为php3.ini,PHP4为php.ini)中的magic_quotes_gpc 设成Off或0,修改后请重新启动Apache. </body> </html>    <?   

甲骨文推出新版面向Windows系统的MySQL安装程序

为进一步提升在 Windows 系统上的MySQL功能,甲骨文日前宣布推出新版面向Windows系统的MySQL安装程序(MySQL Installer for Windows).通过帮助MySQL用户http://www.aliyun.com/zixun/aggregation/32995.html">在Windows平台上简化安装流程,新版面向Windows系统的MySQL安装程序将能显著地减少安装时间. 为进一步支持Windows用户,甲骨文已完成了针对Windows Server

mysql 控制台程序的提示符 prompt 字符串设置_Mysql

The prompt command reconfigures the default mysql> prompt. The string for defining the prompt can contain the following special sequences. mysql 控制台程序的默认提示符为 "mysql>". 该提示符可用根据需要进行修改设置: 有以下几种设置方式: 设置shell 的环境变量 : MYSQL_PS1 shell> export

mysql数据库程序优化方法

mysql数据库程序优化方法 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了.同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字