這幾日,和同事討論除了定義session數組外,其他的利用php製作電商購物車頁面的技巧和這個技巧的雷區後,我們決定將代碼放出來,和大家一起分享,共同進步。
ok,進入主題。
主題邏輯分析:
購物車頁面,核心內容是,
1.店家與商品的數據的獲取。
2.依照數據內容,店家需要被構造在頁面裏,商品需要被構造在頁面裏。
3.商品需要經分類被放在各自的店家裏。
4.對商品的增刪,在商品增加時不出現重複的,不被分配到錯誤的店家離去。一個店家的商品消失,店家這一欄也消失。
5.隨後,提交購物車時,被選中的提交,未被選中的不提交。
首先,我們連接好數據庫
<?php
//連接數據庫,成功返回1.
$conn=mysql_connect('127.0.0.1','root','123456');
$link=mysql_select_db('test',$conn);
在這裏,爲了滿足一般需求,我不會做的太複雜,只完成商品被渲染出來的部分。
連接好數據庫後,我們就依據自己的購物車表來獲取裏面所有的貨物的id。
先看一下整體代碼
$r=mysql_query("select gid from cart");
while($goods_id = mysql_fetch_array($r)){
$goods_pice = mysql_fetch_array(mysql_query("select * from cart where gid=$goods_id[0]"));
//當前商品總信息
$goods = mysql_fetch_array(mysql_query("select * from goods where gid=$goods_id[0]"));
}
下面這條語句,配合while可循環遍歷出本次查詢的所有信息。我們在查詢數據庫時不都是刷的顯示豎着一長串信息,但是在php裏,信息總是會顯示那一長串的第一條,只有不斷調用這一行代碼,在可以遍歷本次查詢的所有信息。
$goods_id = mysql_fetch_array($r)
因爲我們在第一行代碼裏查找的是所有商品的id,所以每次循環,我們都可以輸出,每一個商品的所有信息,然後在取出來以後,利用echo拼接html頁面,途中把你的商品信息賦給變量,傳進去就好,下面上完整代碼
<?php
//查詢整個購物車
$r=mysql_query("select gid from cart");
查詢商品總數
$shop_good_row = mysql_num_rows(mysql_query("SELECT gid FROM cart"));
for($g=1;$g<=$shop_good_row;$g++){
$goods_id = mysql_fetch_array($r);
//找到當前商品的id
$goods_pice = mysql_fetch_array(mysql_query("select * from cart where gid=$goods_id[0]"));
//當前商品總信息
$goods = mysql_fetch_array(mysql_query("select * from goods where gid=$goods_id[0]"));
$gname = $goods['gname'];
$gimg = $goods['gimg'];
$gprice = $goods['gprice'];
$sname = $goods['shop'];
$gid = $goods['gid'];
$gpice = $goods_pice['c_gpice'];
//頁面圖形
echo '<div class="shops1 shops"><div class="id" style="display: none">'.$goods_id[0].'</div><span class="img"><span class="shops_left"><input type="checkbox" class="chk_zz"></span><img src="' . $gimg . '" alt="pimax小派 vr眼鏡4k超高清電腦pc vr頭盔虛擬現實跨界潮牌合作款"><span class="font">' . $gname . '</span></span><span class="info">pimax小派 vr眼鏡4k超高清電腦pc vr頭盔虛擬現實跨界潮牌合作款</span><span class="one_price">¥<em>' . $gprice . '</em></span><span class="shops_pice"><input class="chk_left" type="button" value="-" ><input class="pice" type="text" value="'.$gpice.'"><input class="chk_right" type="button" value="+"></span><span style="color:red">¥<em class="all_price">'.$gpice*$gprice.'</em></span><span class="handle"><a href="#">移入收藏夾</a><a href="#" class="del" >刪除</a><br><a href="#">相似寶貝</a></span></div>';
}
?>
值得一提的是,echo輸出的html代碼我之前在工具網站裏進行壓縮過,不然你每次換行,都需要添加 “+” 很麻煩,下面給你網址
(https://tool.lu/c/developer “工具網”)
一個小demo,雖然簡陋,但是五臟俱全,如果對jq控制顯示點擊選擇或者加減商品總價的的朋友,歡迎瀏覽我的qq 1561790480;下次博客,不見不散。