이제 온라인 쇼핑이 유행이 되었습니다. 고객이 상품을 선택하고 장바구니에 담은 다음 다시 쇼핑을 계속하거나 결제로 이동하는 경우가 있습니다. 오늘 capucivar는 PHP를 사용하여 이 장바구니 기능을 구현합니다.
먼저 간단한 홈페이지를 만들고, 데이터베이스에서 여러 상품을 조회하여 홈페이지에 표시하고, 구매 버튼을 추가하세요. 구체적인 코드는 다음과 같습니다:
<?php include ("conn.php"); $sql="select * from produce";//查询所有商品 $rs=mysql_query($sql,$conn);//执行sql语句,得到一个结果集 while($row=mysql_fetch_array($rs))//遍历结果集 { ?> <table width="343" height="152" border="1"style="float:left"> <tr> <td width="124"rowspan="3"><img src="images/<?php echo$row["pimg"]?>" width="123" height="121" border="0"/></td> <td width="203"height="35">货物名称:<?php echo$row["pname"]?></td> </tr> <tr> <tdheight="28">货物价格:<?php echo$row["price"]?></td> </tr> <tr> <td height="27"align="center"><ahref="buy.php?id=<?php echo $row["pid"]?>&pname=<?php echo $row["pname"]?>">购买</a></td> </tr> </table> <?php } ?>
그런데 conn.php를 작성하는 것을 잊어버렸습니다. 데이터베이스에 연결하는 데 사용됩니다.
<?php $conn=mysql_connect("localhost","root",""); mysql_select_db("shop",$conn); mysql_query("set names gb2312"); ?>
buy.php에 대한 구매 하이퍼링크를 클릭하세요. 이 페이지에서 , 구매한 항목을 저장하려면 구매한 항목을 1차원 배열에 넣은 다음 1차원 배열을 2차원 배열에 넣고 마지막으로 2차원 배열을 세션에 넣을 수 있습니다.
앞으로 구매한 아이템을 어떻게 수정하시더라도 세션에서 빠져나와 수정이 가능합니다. 이로 인해 관리가 매우 편리해졌습니다. 구체적인 코드는 다음과 같습니다.
<?php session_start();//使用session之前一定要将session开启 ob_start();//要清空缓存就必须ob_start() $pid=$_GET["id"];//得到购买物品的id $name=$_GET["pname"];//得到购买物品的名字 $arr=$_SESSION["mycar"];//将session中的变量取出来 //下面先判断这个变量是否是数组,可以得到以前是否买过东西 if(is_array($arr)) { //如果是数组,说明以前买过东西 //如果买过东西又分两种情况: if(array_key_exists($pid,$arr)) { //1、array_key_exists($pid,$arr)判断$arr中是否存在键值为$pid的一个一维数组,如果存在的话,就说明此商品以前购买过,只需要把数量加1 $uu=$arr[$pid]; //从二维数组里拿出对应的一维数组,该一维数组包括id name num 三个值 $uu["num"]=$uu["num"]+1; //改变数量,将数量加1 $arr[$pid]=$uu; //改完后再将此一维数组放回二维数组中 } else { //2.此商品第一次购买,就将得到的id和name值组成一个一维数组 $arr[$pid]=array("pid"=>$pid,"name"=>$name,"num"=>1); } } else { $arr[$pid]=array("pid"=>$pid,"name"=>$name,"num"=>1); } $_SESSION["mycar"]=$arr;//购买完后,将此数组重新放入session中,便可以在各个页面看到此session ob_clean();//清空缓存 header("location:car.php");//跳转到购物车界面(car.php) ?>
다음은 장바구니 코드입니다.
<?php session_start();//启用session $arr=$_SESSION["mycar"];//从session中拿出二维数组 ?> //下面将数组里的数据即客户所购买的物品展示出来 <table width="600" height="37"border="1"> <tr> <tdwidth="96">商品ID</td> <tdwidth="158">商品名称</td> <tdwidth="154">商品数量</td> <tdwidth="177">删除</td> </tr> <?php foreach($arr as $a)//遍历这个二维数组 { ?> <tr> <td width="96"><?phpecho $a["pid"]?></td>//物品的id <td width="158"><?phpecho $a["name"]?></td>//物品的名称 <td width="154"><?phpecho $a["num"]?></td>//物品的数量 <td width="177"><ahref="delete.php?id=<?php echo $a[pid]?>">删除</a></td>//点击删除超链接到”delete.php”,将物品的id传过去 </tr> <?php } ?> </table> </form> <ahref="index.php">返回继续购物</a>//返回到首页
상품 삭제 시 삭제할 상품의 ID를 먼저 알아낸 후, 빼주세요. 2차원 배열의 id에 해당하는 1차원 배열을 지우고(unset()) 2차원 배열을 다시 session()에 넣습니다. 아래 삭제 코드를 작성하세요:
<?php session_start();//启动session ob_start();//清空缓存必须启动的项 $pid=$_GET["id"];//得到通过get方式传过来的id $arr=$_SESSION["mycar"];//拿出session里的二维数组 foreach($arr as$key=>$proId)//遍历该二维数组中的键值,这里也就是商品的id { if($key==$pid)//判断键值等于传过来的商品id { unset($arr[$key]);//清除该一维数组 } } $_SESSION["mycar"]=$arr;//将清除之后的二维数组重新放到session里 ob_clean();//清除缓存 header("location:car.php");//跳转到购物车 ?>
코드 작성 후 capucivar에서 ID 2로 구매한 상품이 삭제됩니다
장바구니 기능은 비교적 간단하며, 구매와 삭제만 구현됩니다. 사실 장바구니는 아이디어가 명확한 한 1+1을 계산하는 것처럼 비교적 간단합니다.
장바구니 기능은 다음과 같이 구현됩니다. 제품을 구매한 후 제품의 ID와 이름을 얻고 이 두 값과 수량(1)을 1차원 배열에 넣습니다. 은 1차원 배열이므로 당연히 2차원 배열을 사용해야 하는 항목이 많습니다.
이전에 제품을 구매한 적이 있는지 확인하세요. 그렇다면 이전 수량에 하나를 추가하세요. 그렇지 않으면 1차원 배열을 다시 만들고 2차원 배열에 넣으세요. 드디어 세션에 넣었습니다.
삭제할 때는 삭제할 상품의 ID를 알아낸 후 2차원 배열에서 해당 상품이 저장되어 있는 1차원 배열을 찾아 1차원 배열을 지운 후 2차원 배열을 세션. 이런 식으로 위와 유사한 간단한 장바구니 기능이 구현됩니다.
읽어주신 모든 분들께 감사드리며, 많은 혜택 받으시길 바랍니다.
이 기사는 다음에서 복제되었습니다: https://blog.csdn.net/qq1355541448/article/details/26371777
추천 튜토리얼: "php tutorial"
위 내용은 PHP를 사용하여 2시간 만에 웹사이트 장바구니를 구축하는 방법을 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!