導航:首頁 > 編程語言 > php購物車邏輯

php購物車邏輯

發布時間:2022-09-02 20:33:37

php購物車計算總價問題~循環。。。數組。。相加。。

//如果你需要得到最後所以相加的結果,不需要再賦值一個arr然後再把arr入數組:

$sum=[];//這是所有價格
while(true){
//...
$totol=$row1[1]*$row[3];
$sum[]=$totol;
}
//想算出總價,循環這個數組即可,如果只需要總價就不需要放入數組了,直接在循環中累加就可以了:

$sum=0;
while(true){
//...
$totol=$row1[1]*$row[3];
$sum+=$totol;
}

echo'你的總價:'.$sum;

㈡ 我用PHP做的購物車,為什麼每次往購物車中添加不同商品 ,購物車中確顯示的同一件商品啊

這個需要看你的購物車結構。
一般一個屬性的商品是在一條數據裡面,多次加入只是更改數量
不同屬性的商品應該分多條數據保存。最後購物車統計的是總的數量

㈢ 【高分】急求用php寫的購物車代碼!!!!!(十萬火急)如果您提供的好用還有加分!!!

我也要弄一個這種購物車,
我去寫個,貼出來,【嘿嘿,今天上午新寫的】。
我懶得新建資料庫,用的是我的資料庫。
你按照我的改一下就能用了
本人水平有限,高手請指正。
你,大,爺的,雖然不咋地,保證能用
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
經過調試,
//$my->add_cart(45,3,"茶幾系列");//新增購物
//$my->updata_cart(13,13,8); //更新購物
//$my->del_cart(12,5,'Guest'); //刪除一種購物
//$my->empty_cart('Guest'); //清空購物車
$ok=$my->get_cart('Guest'); //返回購物車
這些都可用
-------------------------------------------------------------------
<?php

class Cart
{

public $totalCost=0; //商品總金額

function cart($host,$usr,$pwd,$db)
{
mysql_connect($host,$usr,$pwd) or die(mysql_error);
mysql_select_db($db) or die(mysql_error);
mysql_query("SET Names GBk");
//只要有人訪問,就自動清除一天前所有沒付款的訂單;
$sql="delete FROM shopcart WHERE TO_DAYS( NOW( )) - TO_DAYS( ptime ) >=1 and payment=0";
mysql_query($sql);

}

// 彈出提示
function alter($Str,$Url)
{
echo "<Script language='JavaScript'> alert('".$Str."');</Script>";
echo "<meta http-equiv=refresh content=0;URL=".$Url.">";
}

//增加購物;三個參數:pid:產品ID,ptl:產品數量,pcid:產品類別
//查詢資料庫,是否存在此人在本日內訂過本產品
//如果訂過,那麼數量累加,否則插入一個資料庫行
function add_cart($pid,$ptl=1,$pcid)
{
if($ptl>=100 || $ptl<=0)
{
$this->alter("最多買99件,最少1件","index.php");
die();
}

if(!$_SESSION['usr']) { $usr='Guest';}
else { $usr=$_SESSION['usr'];}

$sql="select * from shopcart where pid='".$pid."' and usr='".$usr."' and pcid='".$pcid."'";
$ex=mysql_query($sql);
$ex1=mysql_fetch_array($ex);

if(!$ex1)
{
$sql="select * from proct where ID='".$pid."' and class1='".$pcid."'";
$ok=mysql_query($sql);
$rs=mysql_fetch_array($ok);

if($rs)
{
$totalCost= $rs['Price'] * $ptl;

$sql="insert into shopcart(usr,pid,pname,ptl,price,pcid,psum,payment) Values(";
$sql.="'".$usr."',";
$sql.="'".$rs['ID']."',";
$sql.="'".$rs['Name']."',";
$sql.="'".$ptl."',";
$sql.="'".$rs['Price']."',";
$sql.="'".$rs['Class1']."',";
$sql.="'".$totalCost."',";
$sql.="'0')";

mysql_query($sql) or die(mysql_error());
if($ok) { $this->alter("購物成功","index.php"); }
else { $this->alter("購物失敗","index.php"); }

}
else
{
$this->alter("不存在的商品,或者參數錯誤","index.php");
die();
}
}
else
{
$sql="update shopcart set ptl= ptl+1,psum = psum+price where ID='".$ex1['ID']."'";
mysql_query($sql);
$this->alter("更新數量成功","index.php");
}

}

//更新購物車的單個產品的數量;
function updata_cart($cid,$ptl,$pid)
{
if($ptl>=100||$ptl<=0)
{
$this->alter('產品數量不對!','index.php');
die();
}
$sql="select * from shopcart where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { alter("參數發生錯誤","index.php");}
else
{
$sql="update shopcart set ptl='".$ptl."',psum=price * '".$ptl."' where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { $this->alter("更新失敗","index.php");}
else { $this->alter("更新成功","index.php");}
}
}
function del_cart($cid,$pid,$usr)
{
$sql="delete from shopcart where usr='".$usr."' and ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!$ok) {$this->alter("刪除失敗","index.php");}
else {$this->alter("刪除成功","index.php");}
}

function empty_cart($usr)
{
$sql="delete from shopcart where usr='".$usr."'";
mysql_query($sql) or die(mysql_error);
}

function get_cart($usr)
{
$sql="select * from shopcart where usr='".$usr."'";
$ok=mysql_query($sql);
return $ok;
}

}
$my = new Cart("localhost","root","root","mybbs");
//$my->add_cart(45,3,"茶幾系列");
//$my->updata_cart(13,13,8);
//$my->del_cart(12,5,'Guest');
//$my->empty_cart('Guest');
$ok=$my->get_cart('Admin');

echo "usr pid pname ptl price pcid psum payment ptime <br><hr><br>";
while($rs=mysql_fetch_array($ok))
{
echo $rs[1]."->".$rs[2]."->".$rs[3]."->".$rs[4]."->".$rs[5]."->".$rs[6]."->".$rs[7]."->".$rs[8]."->".$rs[9]."<br>";

}

?>

、、、、、、、、、、、、、、、、、SQL、、、、、、、、、、、、、、

CREATE TABLE IF NOT EXISTS `shopcart` (
`ID` int(10) NOT NULL auto_increment,
`usr` varchar(50) NOT NULL,
`pid` int(5) NOT NULL,
`pname` varchar(100) NOT NULL,
`ptl` int(3) NOT NULL,
`price` decimal(50,2) NOT NULL default '0.00',
`pcid` varchar(100) NOT NULL,
`psum` decimal(50,2) NOT NULL default '0.00',
`payment` tinyint(1) NOT NULL,
`ptime` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
)

proct 裡面用的ID CLASS1是

`ID` int(6) NOT NULL auto_increment,
`Class1` varchar(20) NOT NULL,
`Price` int(6) NOT NULL,

㈣ 跪求一份PHP購物車的源碼 只要求不到 我就一直等 等到天荒等到地老

源碼我這里沒有。而且找出來的源碼也未必適合你。
給你說一下購物車的思路吧,希望對你有幫助
1.現在互聯網的購物車.一般都採用cookie來做的.
a.用戶點擊"加入購物車",把當前物品id,按照某種形式,寫入cookie.
b.代碼思路.$_COOKIE['car']可以理解為就是購物車.裡面是物品id;
$car = $_COOKIE['car']; //先讀取購物車
$car = $car ? explode(',',$car) : array(); //如果購物車有物品,則把物品轉化成數組,如果沒有則默認成空數組;
$car[] = $goods_id; //往購物車中增加該物品;
$car = implode(','.$car); //把購物車中的所有物品id,轉化成字元串。這便於存貯在cookie中,直接存數組也可以。但是如果你需要把整個購物車信息加密的話,那就應該只有字元串了。
setcookie('car',$car,time()+3600); //購物車存1個小時,這個時間可以設置的長一點;

2.也可以通過資料庫來實現;但前提是必須要用戶登陸才可以。
table_car
uid
goods_id
datetime
1.每次用戶點擊「加入購物車」,往資料庫中寫入,該條信息就好了。
這種情況需要注意,在一定的時間段外,需要清空之前的信息。所以這里設置了datetime;

這個只是簡單的購物車原理。裡面還有一些其他細節。
1.比如說物品的數量。
2.cookie信息的加密和解密.
..........
3.才用資料庫方式,需要清空哪些購物數據

㈤ PHP怎麼做購物車

購物車
有兩種實現方式,一種是保存在資料庫,另外一種是session
保存在資料庫的不會以為關閉瀏覽器而消失,session會因為關閉瀏覽器就沒有了。
原理是把每個商品的信息存到一個數組裡面,然後以這個商品的id作為鍵值,然後吧數組存到session裡面就行,
如果是存入資料庫的話,就用關聯數據存一下就行的

㈥ php怎麼用session做購物車

class cart
{
/**
* 函數名稱: addItem
* 函數功能: 添加商品
* 輸入參數: $data ------------- 商品數組
* 函數返回值: none
* 其它說明: 因為數據是記錄在session中,所以不用返回
*/
function addItem($data){
global $config_ke;
if(is_array($data)&&!empty($data)){
foreach($data as $key=>$val){
// 如果商品存在就加數量和價格
if($this->_isExists($key)){

$_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count'];
$_SESSION['cart'][$key]["market_count"] += $val['market_count'];
$_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum']);
$arr = $this->getItems($key);
// $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"];
/* if(strlen($_SESSION['cart'][$key]["ke"])>0){//沒有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0;
$_SESSION['cart'][$key]["eng_price"]=(int)$config_ke*intval($arr['num']);
}else{
//die("dd");
$_SESSION['cart'][$key]["eng_price"]=0;
}*/
//echo $arr['num'];
//die();

}
// 否則直接加入
else
{
$_SESSION['cart'][$key] = $data[$key];
// $_SESSION['cart'][$key]["name"] = $val['name'];
// $_SESSION['cart'][$key]["price"] = $val['price'];
// $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2);
// $_SESSION['cart'][$key]["num"] = intval($val['num']);
}
}
}
}

/**
* 函數名稱: _isExists
* 函數功能: 判斷此商品是否存在
* 輸入參數: $id ---------- 商品ID
* 函數返回值: bool
* 其他說明: 2004-8-19
*/
function _isExists($id)
{

if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
{
Return true;
}
else
{
Return false;
}
}

/**
* 函數名稱: modItem
* 函數功能: 修改商品數量
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品數量
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem($id,$num)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["goodsnum"] = intval($num);
if($arr['paddy_price_special'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2);
}elseif($arr['paddy_userprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2);
}elseif($arr['paddy_spreadprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2);
}else{
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2);
}
$_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2);
}
}

/**
* 函數名稱: modItem_wanwei
* 函數功能: 修改商品腕圍
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品腕圍
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem_wanwei($id,$wanwei)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["wanwei"] = intval($wanwei);

///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}
}

// function modItem_ke($id,$ke)
// {
// global $config_ke;
// $arr = $this->getItems($id);
// // 如果商品存在就加數量和價格
// if($this->_isExists($id))
// {
// $_SESSION['cart'][$id]["ke"] = $ke;
// $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_ke;
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
// }
// }

function modItem_ke($id,$ke,$ke1="",$ke2="")
{
global $config_ke;
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
//var_mp($_SESSION['cart']);
// die();
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["ke"]) == 0 && strlen($ke) != 0){//沒有刻字,加入刻字
//$arr['price'] += $config_ke;
$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);
//$_SESSION['cart'][$id]["price"] = $arr['price'];
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0;
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_ke*intval($arr['num']);
// $_SESSION['cart'][$id]["eng_price"]-=$config_ke;
//$_SESSION['cart'][$id]["price"] = $arr['price'];
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) != 0){//有刻字,更改刻字
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
//$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);

$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}
}
}

/**
* 函數名稱: getItems
* 函數功能: 取得商品數組
* 輸入參數: $id --------------- 某商品的ID
* 函數返回值: array
* 其它說明: 2004-8-19
*/
function getItems($id=null)
{
if(isset($_SESSION['cart']))
{
if($id==null)
{
//print_r($_SESSION['cart']);exit;
Return $_SESSION['cart'];
}
else
{
Return $_SESSION['cart'][$id];
}
}
}

/**
* 函數名稱: emptyItem
* 函數功能: 刪除商品
* 輸入參數: $id ----------- 商品ID
* 函數返回值: bool
* 其它說明: 2004-8-19
*/
function emptyItem($id=null)
{
if($id==null)
{
unset($_SESSION['cart']);
}
else
{
unset($_SESSION['cart'][$id]);
}
}

/**
* 函數名稱: sum
* 函數功能: 統計總價
* 輸入參數: none
* 函數返回值: int
* 其它說明: 2004-8-19
*/
function sum()
{
$total = 0;
if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $key=>$val)
{
$total += $val['count'];
}
}
Return $total;
}
}

㈦ php是怎麼實現購物車的,SESSION 和cookie 在哪裡會用到

購物車就是用session來實現的。session和cookie的不同主要在於前者保存在伺服器端,而後者保存在客戶端電腦上。比如用戶登錄,瀏覽器經常提示你是否保存登錄信息,如果保存了,就新建了一個cookie在你的電腦上。而像購物車之類,或者用戶登錄狀態,則是用session。

㈧ 用php結合cookie實現購物車的一些問題

URL傳遞的參數可以在連接後的程序中直接使用,如:
<a href="zancunjia.php?a1=YF0001&b1=500&c1=8888&d1=YF0001.html ">鏈接1</a><br/>
zancunjia.php中可以用$a1來的到a1,類推……
COOKIE可以使用setcookie()函數設置!
使用已設置的COOKIE是用全局變數:$_COOKIE['***']!***是所設置的鍵值……

如果是購物車,我舉得不應該使用cookie來保存信息,而是要用session,這樣比較好一些!

㈨ PHP 如何能通過URL傳遞session

你將session的值放在地址參數就可以了,
http://192.168.1.100/general/email/id=$_SESSION['id']
另外, SESSION 是全局的, 可以不用地址帶參數傳遞的, 只要SESSION注冊這個key就可以了

㈩ 怎樣用php作購物車的添加功能

這個應該不難的啊,你買一個東西的時候,把這個東西的詳細信息存入資料庫或者放入SESSION中,進入購物車頁面直接遍歷就OK了。不會我可以教你,

閱讀全文

與php購物車邏輯相關的資料

熱點內容
aes對稱加密反編譯 瀏覽:548
java編譯成exe 瀏覽:188
gps處理演算法 瀏覽:594
什麼app可以和對象存錢 瀏覽:144
java字元串表達式計算 瀏覽:328
javacmd環境變數 瀏覽:49
電視上面找不到全民歌app怎麼辦 瀏覽:154
單片機中psw0 瀏覽:992
優酷視頻加密么 瀏覽:761
本地連接dos命令 瀏覽:204
雲伺服器怎麼上傳金幣房卡游戲 瀏覽:69
Python快遞管理可視化 瀏覽:417
java正則驗證數字 瀏覽:828
猴子網游安卓掃碼怎麼登錄 瀏覽:355
7天工作總結簡短程序員 瀏覽:60
手機號交易網站源碼 瀏覽:687
計算機演算法怎麼學 瀏覽:401
m2手環用什麼app才能用 瀏覽:227
應用伺服器打不開怎麼辦 瀏覽:538
釘釘安卓手機如何設置 瀏覽:559