PHP mysql的购物车实例程序完整购物代码

 更新时间:2016年11月25日 15:55  点击:2036
下面要为各位提供一款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 */
?>

本文章提供了四种数据库连接程序,都针对于php的,像php mysql,与mssql是比较常用的,至于php access数据连接也有不秒人在用,还有就是利用php pdo来连接数据库代码我是在用火车头采集数据时来用的。

 
 //php与mysql数据库连接代码
 

 代码如下 复制代码
 mysql_connect('localhost','root','root') or die( 'mysql server stop or use password error!' );
 mysql_select_db('cshouse') or die( 'datebase error' );
 mysql_query("set Names 'GB2312'");


 
 //php 连接access数据库代码
 
 

 代码如下 复制代码
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
 $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . $path;
 $conn->Open($connstr);


 
 //php 利用pdo连接mdb数据库,这个比较适合于火车头采集数据的用户

 代码如下 复制代码
 $path ="F: ontSpiderResult.mdb"; 
 $conn = new PDO("sqlite:$path");
 if( $conn )
 {
  echo ('connection pdo success');
 }
 else
 {
  echo ('cnnection pdo fail ,plase check database server!');
 }


 
 // php与mssql 数据库连接代码
 

 代码如下 复制代码
 $link = mssql_connect("127.0.0.1", "sa", "sa") or die("Can't connect sql server");
    mssql_select_db("frrc", $link) or die("Select database failure");
  
 /*
  
  好了本站原创文章转载注明来源http://www.111cn.net/phper/php.html
 */

<table align=center border=0 cellspacing=0 cellpadding=0>
<?
for ($y=0;$y<16;$y++)
{
echo "<tr height=4>n";

for ($x=0;$x<16;$x++)
{
$abs00=sqrt(($x*$x)+($y*$y));
if ($abs00>16)
$abs00=16;

$abs01=sqrt(($x*$x)+((16-$y)*(16-$y)));
if ($abs01>16)
$abs01=16;

$abs10=sqrt(((16-$x)*(16-$x))+($y*$y));
if ($abs10>16)
$abs10=16;

$red=((16-$abs00)*16)-1;
if ($red<0)
$red=0;

$green=((16-$abs01)*16)-1;
if ($green<0)
$green=0;
$blue= ((16-$abs10)*16)-1;
if ($blue<0)
$blue=0;

$col = sprintf("%02x%02x%02x",$red,$green,$blue);
echo " <td width=4 bgcolor="#$col">($red,$green,$blue=$col)<a href="$PHP_SELF?color=$col"><img src=images/blank.gif width=4 height=4 border=0 alt="$col"></a></td>n";
}

echo "</tr>n";
}
?>
</table>
<?php教程
echo "<P><CENTER><font color=$color><U><B>大家好,这个颜色可以了吗?</B></U></font></CENTER>";
?>

<?
/ /原来是Zend.com,由亨特reproducted

/ *
用法:$ new_password = return_password();
示例:生成密码:2X5bjj2z,ERgid62Y,p2sHtDPv
* /

 代码如下 复制代码

function return_password () {

// set password length
$pw_length = 8;
// set ASCII range for random character generation
$low_ascii_bound = 50; // "2"
$upper_ascii_bound = 122; // "z"

// Exclude special characters and some confusing alphanumerics

排除一些特殊字符和字母数字混淆
// o,O,0,I,1,l etc
$notuse = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108,111);

while ($i < $pw_length) {
mt_srand ((double)microtime() * 1000000);
// random limits within ASCII table
$randnum = mt_rand ($low_ascii_bound, $top_ascii_bound);
if (!in_array ($randnum, $notuse)) {
$password = $password . chr($randnum);
$i++;
}
}

return $password;
}

<?php教程

 代码如下 复制代码

HtmlHead("选择解压文件:") ;

if ( !IsSet($HTTP_POST_VARS['submit']) )
{
 TestWriteable() ;
 $gzip_info = "" ;
 echo "check zlib support... " ;
 if ( !function_exists("gzopen") )
 {
  $gzip_info = "<font color="red">注意! 您的空间没有zlib支持,因此用
  <a href="http://www.111cn.net/" target="_blank"><font color="blue">phpZip</font></a>
  压缩文件时,不要选择“压缩成Gzip格式”,否则将无法正确解压!</font>" ;
 }
 else
 {
  $gzip_info = "<font color="blue">恭喜! 您的空间支持zlib压缩,强烈建议用
  <a href="http://www.111cn.net/"><font color="red" target="_blank">phpZip</font></a>
  压缩文件时,选中“压缩成Gzip格式”,将会大大减少文件大小!</font>" ;
 }
 echo " ----------------- OK!<br> " . $gzip_info ;
 
 echo "<br><br><br><br>
<form action="{$_SERVER["PHP_SELF"]}" method="post" enctype="multipart/form-data">
<table align="center" width="450">
<tr><td height="20" colspan="2">请先选择压缩文件的位置,然后点击“确定”按钮: <p></td></tr>
<tr>
<td><input type="radio" name="file_type" value="upload" checked onclick="this.form.upload_file.disabled=false; this.form.server_filename.disabled=true">文件从本地上传: </td>
<td>
<input name="upload_file" type="file" style="color:#0000ff">
</td>
</tr>

<tr><td colspan=2 height=10></td></tr>

<tr>
<td><input type="radio" name="file_type" value="server" onclick="this.form.upload_file.disabled=true; this.form.server_filename.disabled=false">指定服务器上文件:</td>
<td><input name="server_filename" value="data.dat.gz" style="color:#0000ff" disabled >(可以用"."表示当前目录)</td>
</tr>

<tr><td colspan="2" align=center><br><input type="submit" name="submit" value="确定"></td></tr>
</table>
</form>
" ;
 HtmlFoot() ;
 exit ;
}

if ( $_POST['file_type'] == 'upload' )
{
 $tmpfile = $_FILES['upload_file']['tmp_name'] ;
}
else
{
 $tmpfile = $_POST['server_filename'] ;
}

if ( !$tmpfile )
{
 exit("无效的文件或文件不存在,可能原因有文件大小太大,上传失败或没有指定服务器端文件等") ; 
}

$bgzExist = FALSE ;
if ( function_exists("gzopen") )
{
 $bgzExist = TRUE ;
}

$alldata = "" ;
$pos = 0 ;

$gzp = $bgzExist ? @gzopen($tmpfile, "rb") : @fopen($tmpfile, "rb") ;
$szReaded = "has" ;
while ( $szReaded )
{
 $szReaded = $bgzExist ? @gzread($gzp, 2*1024*1024) : @fread($gzp, 2*1024*1024) ;
 $alldata .= $szReaded ;
}
$bgzExist ? @gzclose($gzp) : @fclose($gzp) ;

$nFileCount = substr($alldata, $pos, 16) ;
$pos += 16 ;

$size = substr($alldata, $pos, 16) ;
$pos += 16 ;

$info = substr($alldata, $pos, $size-1) ;  // strip the last ' '
$pos += $size ;

$info_array = explode(" ", $info) ;

$c_file = 0 ;
$c_dir = 0 ;

foreach ($info_array as $str_row)
{
 list($filename, $attr) = explode("|", $str_row);
 if ( substr($attr,0,6) == "[/dir]" )
 {
  echo "End of dir $filename<br>";
  continue;
 }
 
 if ( substr($attr,0,5)=="[dir]" )
 {
  if ( @mkdir($filename, 0777) )
   echo "Make dir $filename<br>";
  $c_dir++ ;
 }
 else
 {
  $fp = @fopen($filename, "wb") or exit("不能新建文件 $filename ,因为没有写权限,请修改权限");
  @fwrite($fp, substr($alldata, $pos, $attr) );
  $pos += $attr ;
  fclose($fp);
  echo "Create file $filename<br>";
  $c_file++ ;
 }
}

if ( $_POST['file_type'] == 'upload' )
{
 if ( @unlink($tmpfile) ) echo "删除临时文件 $tmpfile...<br>" ;
}

echo "<h1>操作完毕! 共解出文件 $c_file 个, 文件夹 $c_dir 个,谢谢使用!</h1><p>" ;
HtmlFoot() ;


function TestWriteable()
{
 $safemode = '
新建一文件,命名为 unzip2.php (或其它名字), 其内容如下:

<?php
copy("unzip.php", "unzip_safe.php") ;
header("location:unzip_safe.php") ;
?>

将这个文件上传到服务器,与unzip.php同一个目录下,
运行 unzip2.php 这个程序。

如果还是不行的话,那就是空间实在不支持,没有办法,很对不住您,浪费您的时间.
 ' ;
 echo "check PHP version... " . phpversion() . " -------- OK!<br> " ;
 echo "testing Permission... " ;

 $fp = @fopen("phpzip.test", "wb") ;
 if ( FALSE !== $fp )
 {
  fclose($fp) ;
  @unlink("phpzip.test") ;
 }
 else
 {
  exit("当前目录没有写的权限,请将当前目录属性修改为:777 ") ;
 }

 $dir = "phpziptest" ;
 $file = "$dir/test.txt.php" ;
 @mkdir($dir, 0777) ;
 $fp = @fopen($file, "wb") ;
 if ( FALSE === $fp )
 {
  @rmdir($dir) ;
  exit ("没有权限在程序创建的文件夹下创建文件 ,很可能是PHP安全模式所致,解决方法如下:<p><center><textarea cols=110 rows=15>$safemode</textarea></center>") ;
 }
 @fclose($fp) ;
 @unlink($file) ;
 @rmdir($dir) ;
 echo " ----------------- OK!<br> " ;
}

function HtmlHead($title="", $css教程_file="")
{
 echo "<html> "
  . " "
  . "<head> "
  . "<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> "
  . "<title>$title</title> "
  . "<style type="text/css"> "
  . "body,pre,td {font-size:12px; background-color:#fcfcfc; font-family:Tahoma,verdana,Arial} "
  . "input,textarea{font-size:12px; background-color:#f0f0f0; font-family:Tahoma,verdana,Arial} "
  . "</style> "
  . "</head> "
  . " "
  . "<body> " ;
}

function HtmlFoot()
{
 echo "<center><font size="5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!</font></center> "
  . "<br><hr color="#003388"> "
  . "<center> "
  . "<p style="font-family:verdana; font-size:12px">Contact us: "
  . "<a href="http://www.111cn.net/" target="_blank">http://www.111cn.net/</a></p> "
  . "</center> "
  . "</body> "
  . " "
  . "</html>" ;
}

?>

[!--infotagslink--]

相关文章

  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • JS实现购物车中商品总价计算

    这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
  • vue项目,代码提交至码云,iconfont的用法说明

    这篇文章主要介绍了vue项目,代码提交至码云,iconfont的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30