購物車是現在電商開發者必須要做的一個功能了,下面我來給大家整理兩個可用于電商網站的簡單購物車程序代碼,有興趣的同學不防進入參考一下.
例子1:最近在寫一個電子商務的網站,在做購物車的時候才發現php里面沒有map這種數據結構,我們不能簡單的通過一個hashmap來實現購物車,于是我想到到數組,通過數組的值的格式化來進行編寫.
也就是說,我們是通過循環數組的值,通過拆分值來判斷數據是不是重復,比如我現在瀏覽的商品的id是4,添加的數量是3,我就在數組里面存放4-3,以后如果當遇到是id是4的時候,我們只是需要時改變數組里面這個位置的數值,如果id在數組里面拆分比較都不存在,則往數組里面添加數據,刪除購物車制定id 的商品也是循環數組,這個值,使用unset()來釋放這個值.
具體的實現代碼,如下:
- <?php
- session_start();
- if($_SESSION['carts']==””){
- $carts=array();
- array_push($carts, “0-0″);
- $_SESSION['carts']=$carts;
- }
- $method=$_GET['method'];
- if($method==”add”){
- $productId=$_GET['productid'];
- $number=$_GET['number'];
- $carts=$_SESSION['carts'];
- $flag=”false”;
- for($i=0;$i<sizeof($carts);$i++){
- $pn=$carts[$i];
- $pns=split(“-”, $pn);
- if($pns[0]==$productId){
- $carts[$i]=$productId.”-”.$number;
- $flag=”true”;
- $location=$i;
- }
- }
- if($flag==”true”){
- $carts[$location]=$productId.”-”.$number;
- }else{
- array_push($carts, $productId.”-”.$number);
- }
- $_SESSION['carts']=$carts;
- }//開源代碼Vevb.com
- if($method==”delete”){
- $productId=$_GET['productid'];
- $carts=$_SESSION['carts'];
- for($i=0;$i<sizeof($carts);$i++){
- $pn=$carts[$i];
- $pns=split(“-”, $pn);
- if($pns[0]==$productId){
- unset($carts[$i]);
- }
- }
- $_SESSION['carts']=$carts;
- }
- ?>
上面電子商務課程的時候做的一個簡單的程序了,就是一個在線購物,不過還是90多分的,其實只要是這種類似的程序,都是簡單的增刪改查系統,無非就是就對數據庫的操作,我們要做的就是很好的實現這個業務邏輯,以及能很好的設計相關的字段來控制,比如是商品的狀態的控制,是上線還是下線,還是推薦的.
現在看看連接數據庫的代碼吧,數據庫配置代碼,其實這個可以在xml配置文件里面設置,代碼如下:
- class DbConfig{
- var $databaseAddress="180.153.178.89";
- var $dataBaseUser="pantingwen";
- var $databasePassword="753116";
- var $database="sqlpantingwen";
- /**
- * @return the $databaseAddress
- */
- public function getDatabaseAddress() {
- return $this->databaseAddress;
- }
- /**
- * @return the $dataBaseUser
- */
- public function getDataBaseUser() {
- return $this->dataBaseUser;
- }
- /**
- * @return the $databasePassword
- */
- public function getDatabasePassword() {
- return $this->databasePassword;
- }
- /**
- * @return the $database
- */
- public function getDatabase() {
- return $this->database;
- }
- /**
- * @param field_type $databaseAddress
- */
- public function setDatabaseAddress($databaseAddress) {
- $this->databaseAddress = $databaseAddress;
- }
- /**
- * @param field_type $dataBaseUser
- */
- public function setDataBaseUser($dataBaseUser) {
- $this->dataBaseUser = $dataBaseUser;
- }
- /**
- * @param field_type $databasePassword
- */
- public function setDatabasePassword($databasePassword) {
- $this->databasePassword = $databasePassword;
- }
- /**
- * @param field_type $database
- */
- public function setDatabase($database) {
- $this->database = $database;
- }
- }
數據庫連接代碼:
- include_once 'DbConfig.php';
- define("conn", getcon());
- function getcon(){
- $dbConfig=new DbConfig();
- $con=mysql_connect($dbConfig->getDatabaseAddress(),$dbConfig->getDataBaseUser(),$dbConfig->getDatabasePassword());
- return $con;
- }
- /**
- * 選擇一款數據庫
- * Enter description here ...
- */
- function _select_db(){
- $dbConfig=new DbConfig();
- if(!mysql_select_db($dbConfig->getDatabase())){
- exit('找不到指定的數據庫');
- }
- }
- /**
- * 設置字符集
- * Enter description here ...
- */
- function _set_names(){
- if(!mysql_query('set names utf8')){
- exit('字符集錯誤');
- }
- }
- function _query($_sql){
- _select_db();
- _set_names();
- if(!$result=mysql_query($_sql,conn)){
- echo mysql_error();
- }
- return $result;
- }
- /**
- * 只能是獲取一個數據組
- * Enter description here ...
- * @param unknown_type $_sql
- */
- function _fetch_array($_sql){
- return mysql_fetch_array(_query($_sql),MYSQL_ASSOC);
- }
- /**
- * 返回數據組
- * Enter description here ...
- * @param unknown_type $_sql
- */
- function _fetch_array_list($_result){
- return mysql_fetch_array($_result,MYSQL_ASSOC);
- }
- /**
- * 影響到到的記錄數
- * Enter description here ...
- */
- function _affect_rows(){
- return mysql_affected_rows();
- }
- /**
- * 判斷是不是存在數據
- * Enter description here ...
- * @param unknown_type $_sql
- * @param unknown_type $_info
- */
- function _is_repeat($_sql,$_info){
- if(_fetch_array($_sql)){
- }
- }
- function _close(){
- if(!mysql_close(_conn)){
- exit('關閉異常');
- }
- }
新聞熱點
疑難解答