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. } 
  7. $method=$_GET['method']; 
  8. if($method==”add”){ 
  9. $productId=$_GET['productid']; 
  10. $number=$_GET['number']; 
  11. $carts=$_SESSION['carts']; 
  12. $flag=”false”; 
  13. for($i=0;$i$carts);$i++){ 
  14. $pn=$carts[$i]; 
  15. $pns=split(“-”, $pn); 
  16. if($pns[0]==$productId){ 
  17. $carts[$i]=$productId.”-”.$number; 
  18. $flag=”true”; 
  19. $location=$i; 
  20. } 
  21. } 
  22. if($flag==”true”){ 
  23. $carts[$location]=$productId.”-”.$number; 
  24. }else{ 
  25. array_push($carts, $productId.”-”.$number); 
  26. } 
  27. $_SESSION['carts']=$carts; 
  28. }//开源代码phpfensi.com 
  29. if($method==”delete”){ 
  30. $productId=$_GET['productid']; 
  31. $carts=$_SESSION['carts']; 
  32. for($i=0;$i$carts);$i++){ 
  33. $pn=$carts[$i]; 
  34. $pns=split(“-”, $pn); 
  35. if($pns[0]==$productId){ 
  36. unset($carts[$i]); 
  37. } 
  38. } 
  39. $_SESSION['carts']=$carts; 
  40. } 
  41. ?> 

上面电子商务课程的时候做的一个简单的程序了,就是一个在线购物,不过还是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. /** 
  13. * @return the $dataBaseUser 
  14. */ 
  15. public function getDataBaseUser() { 
  16. return $this->dataBaseUser; 
  17. } 
  18. /** 
  19. * @return the $databasePassword 
  20. */ 
  21. public function getDatabasePassword() { 
  22. return $this->databasePassword; 
  23. } 
  24. /** 
  25. * @return the $database 
  26. */ 
  27. public function getDatabase() { 
  28. return $this->database; 
  29. } 
  30. /** 
  31. * @param field_type $databaseAddress 
  32. */ 
  33. public function setDatabaseAddress($databaseAddress) { 
  34. $this->databaseAddress = $databaseAddress; 
  35. } 
  36. /** 
  37. * @param field_type $dataBaseUser 
  38. */ 
  39. public function setDataBaseUser($dataBaseUser) { 
  40. $this->dataBaseUser = $dataBaseUser; 
  41. } 
  42. /** 
  43. * @param field_type $databasePassword 
  44. */ 
  45. public function setDatabasePassword($databasePassword) { 
  46. $this->databasePassword = $databasePassword; 
  47. } 
  48. /** 
  49. * @param field_type $database 
  50. */ 
  51. public function setDatabase($database) { 
  52. $this->database = $database; 
  53. } 
  54. } 

数据库连接代码:

  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. * 选择一款数据库 
  10. * Enter description here ... 
  11. */ 
  12. function _select_db(){ 
  13. $dbConfig=new DbConfig(); 
  14. if(!mysql_select_db($dbConfig->getDatabase())){ 
  15. exit('找不到指定的数据库'); 
  16. } 
  17. } 
  18. /** 
  19. * 设置字符集 
  20. * Enter description here ... 
  21. */ 
  22. function _set_names(){ 
  23. if(!mysql_query('set names utf8')){ 
  24. exit('字符集错误'); 
  25. } 
  26. } 
  27. function _query($_sql){ 
  28. _select_db(); 
  29. _set_names(); 
  30. if(!$result=mysql_query($_sql,conn)){ 
  31. echo mysql_error(); 
  32. } 
  33. return $result; 
  34. } 
  35. /** 
  36. * 只能是获取一个数据组 
  37. * Enter description here ... 
  38. * @param unknown_type $_sql 
  39. */ 
  40. function _fetch_array($_sql){ 
  41. return mysql_fetch_array(_query($_sql),MYSQL_ASSOC); 
  42. } 
  43. /** 
  44. * 返回数据组 
  45. * Enter description here ... 
  46. * @param unknown_type $_sql 
  47. */ 
  48. function _fetch_array_list($_result){ 
  49. return mysql_fetch_array($_result,MYSQL_ASSOC); 
  50. } 
  51. /** 
  52. * 影响到到的记录数 
  53. * Enter description here ... 
  54. */ 
  55. function _affect_rows(){ 
  56. return mysql_affected_rows(); 
  57. } 
  58. /** 
  59. * 判断是不是存在数据 
  60. * Enter description here ... 
  61. * @param unknown_type $_sql 
  62. * @param unknown_type $_info 
  63. */ 
  64. function _is_repeat($_sql,$_info){ 
  65. if(_fetch_array($_sql)){ 
  66. } 
  67. } 
  68. function _close(){ 
  69. if(!mysql_close(_conn)){ 
  70. exit('关闭异常'); 
  71. } 
  72. } 
分享到:
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技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……