php专区

 首页 > php专区 > PHP应用 > 常用功能 > php实现购物车程序代码 - php高级应用

php实现购物车程序代码 - php高级应用

分享到:
【字体:
导读:
          购物车是现在电商开发者必须要做的一个功能了,下面我来给大家整理两个可用于电商网站的简单购物车程序代码,有兴趣的同学不防进入参考一下.例子1:最近在写一个电子商务的网站,在...

php实现购物车程序代码

购物车是现在电商开发者必须要做的一个功能了,下面我来给大家整理两个可用于电商网站的简单购物车程序代码,有兴趣的同学不防进入参考一下.

例子1:最近在写一个电子商务的网站,在做购物车的时候才发现php里面没有map这种数据结构,我们不能简单的通过一个hashmap来实现购物车,于是我想到到数组,通过数组的值的格式化来进行编写.

也就是说,我们是通过循环数组的值,通过拆分值来判断数据是不是重复,比如我现在浏览的商品的id是4,添加的数量是3,我就在数组里面存放4-3,以后如果当遇到是id是4的时候,我们只是需要时改变数组里面这个位置的数值,如果id在数组里面拆分比较都不存在,则往数组里面添加数据,删除购物车制定id 的商品也是循环数组,这个值,使用unset()来释放这个值.

具体的实现代码,如下:

  1. session_start(); 
  2. if($_SESSION['carts']==””){ 
  3. $carts=array(); 
  4. array_push($carts, “0-0″); 
  5. $_SESSION['carts']=$carts
  6. $method=$_GET['method']; 
  7. if($method==”add”){ 
  8. $productId=$_GET['productid']; 
  9. $number=$_GET['number']; 
  10. $carts=$_SESSION['carts']; 
  11. $flag=”false”; 
  12. for($i=0;$i$carts);$i++){ 
  13. $pn=$carts[$i]; 
  14. $pns=split(“-”, $pn); 
  15. if($pns[0]==$productId){ 
  16. $carts[$i]=$productId.”-”.$number
  17. $flag=”true”; 
  18. $location=$i
  19. if($flag==”true”){ 
  20. $carts[$location]=$productId.”-”.$number
  21. }else
  22. array_push($carts$productId.”-”.$number); 
  23. $_SESSION['carts']=$carts
  24. }//开源代码phpfensi.com 
  25. if($method==”delete”){ 
  26. $productId=$_GET['productid']; 
  27. $carts=$_SESSION['carts']; 
  28. for($i=0;$i$carts);$i++){ 
  29. $pn=$carts[$i]; 
  30. $pns=split(“-”, $pn); 
  31. if($pns[0]==$productId){ 
  32. unset($carts[$i]); 
  33. $_SESSION['carts']=$carts
  34. ?> 

上面电子商务课程的时候做的一个简单的程序了,就是一个在线购物,不过还是90多分的,其实只要是这种类似的程序,都是简单的增删改查系统,无非就是就对数据库的操作,我们要做的就是很好的实现这个业务逻辑,以及能很好的设计相关的字段来控制,比如是商品的状态的控制,是上线还是下线,还是推荐的.

现在看看连接数据库的代码吧,数据库配置代码,其实这个可以在xml配置文件里面设置,代码如下:

  1. class DbConfig{ 
  2. var $databaseAddress="180.153.178.89"
  3. var $dataBaseUser="pantingwen"
  4. var $databasePassword="753116"
  5. var $database="sqlpantingwen"
  6. /** 
  7. * @return the $databaseAddress 
  8. */ 
  9. public function getDatabaseAddress() { 
  10. return $this->databaseAddress; 
  11. /** 
  12. * @return the $dataBaseUser 
  13. */ 
  14. public function getDataBaseUser() { 
  15. return $this->dataBaseUser; 
  16. /** 
  17. * @return the $databasePassword 
  18. */ 
  19. public function getDatabasePassword() { 
  20. return $this->databasePassword; 
  21. /** 
  22. * @return the $database 
  23. */ 
  24. public function getDatabase() { 
  25. return $this->database; 
  26. /** 
  27. * @param field_type $databaseAddress 
  28. */ 
  29. public function setDatabaseAddress($databaseAddress) { 
  30. $this->databaseAddress = $databaseAddress
  31. /** 
  32. * @param field_type $dataBaseUser 
  33. */ 
  34. public function setDataBaseUser($dataBaseUser) { 
  35. $this->dataBaseUser = $dataBaseUser
  36. /** 
  37. * @param field_type $databasePassword 
  38. */ 
  39. public function setDatabasePassword($databasePassword) { 
  40. $this->databasePassword = $databasePassword
  41. /** 
  42. * @param field_type $database 
  43. */ 
  44. public function setDatabase($database) { 
  45. $this->database = $database

数据库连接代码:

  1. include_once 'DbConfig.php'
  2. define("conn", getcon()); 
  3. function getcon(){ 
  4. $dbConfig=new DbConfig(); 
  5. $con=mysql_connect($dbConfig->getDatabaseAddress(),$dbConfig->getDataBaseUser(),$dbConfig->getDatabasePassword()); 
  6. return $con
  7. /** 
  8. * 选择一款数据库 
  9. * Enter description here ... 
  10. */ 
  11. function _select_db(){ 
  12. $dbConfig=new DbConfig(); 
  13. if(!mysql_select_db($dbConfig->getDatabase())){ 
  14. exit('找不到指定的数据库'); 
  15. /** 
  16. * 设置字符集 
  17. * Enter description here ... 
  18. */ 
  19. function _set_names(){ 
  20. if(!mysql_query('set names utf8')){ 
  21. exit('字符集错误'); 
  22. function _query($_sql){ 
  23. _select_db(); 
  24. _set_names(); 
  25. if(!$result=mysql_query($_sql,conn)){ 
  26. echo mysql_error(); 
  27. return $result
  28. /** 
  29. * 只能是获取一个数据组 
  30. * Enter description here ... 
  31. * @param unknown_type $_sql 
  32. */ 
  33. function _fetch_array($_sql){ 
  34. return mysql_fetch_array(_query($_sql),MYSQL_ASSOC); 
  35. /** 
  36. * 返回数据组 
  37. * Enter description here ... 
  38. * @param unknown_type $_sql 
  39. */ 
  40. function _fetch_array_list($_result){ 
  41. return mysql_fetch_array($_result,MYSQL_ASSOC); 
  42. /** 
  43. * 影响到到的记录数 
  44. * Enter description here ... 
  45. */ 
  46. function _affect_rows(){ 
  47. return mysql_affected_rows(); 
  48. /** 
  49. * 判断是不是存在数据 
  50. * Enter description here ... 
  51. * @param unknown_type $_sql 
  52. * @param unknown_type $_info 
  53. */ 
  54. function _is_repeat($_sql,$_info){ 
  55. if(_fetch_array($_sql)){ 
  56. function _close(){ 
  57. if(!mysql_close(_conn)){ 
  58. exit('关闭异常'); 
分享到:
php实现新浪短链接调用API代码 - php高级...
php实现新浪短链接调用API代码 前面写过了一篇文章是图片反盗链的,我自己弄得单独的页面就采用了sina的短连接,对于短连接来说还是方便的,地址太长占地方,下面分享源码,有注释,非原创,代码如下:   本文中短连接已经附带的一个appkey不用再自己申请KEY当然你如果需要使用你自己的您...
php ZipArchive打包压缩zip文件实例 - ph...
php ZipArchive打包压缩zip文件实例 ZipArchive类是一个文件压缩解压类是一个php自来的zip类,我们可以直接简单创建一个类然后就能实现打包了,下面小编给各位介绍一下吧,有需要了解的朋友可进入参考. 这里我采用的是php自带的ZipArchive类 a) 我们只需要new一个ZipArchive对象,然后使用open...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……