Maison > développement back-end > Problème PHP > Comment implémenter le panier en php

Comment implémenter le panier en php

藏色散人
Libérer: 2023-03-12 22:28:01
original
6883 Les gens l'ont consulté

Comment implémenter un panier d'achat en PHP : 1. Disposez la page frontale ; 2. Placez l'article acheté dans un tableau unidimensionnel ; 3. Mettez tous les tableaux unidimensionnels dans un tableau bidimensionnel ;4 . Mettez les données correspondantes dans la session.

Comment implémenter le panier en php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

php implémente la fonction de panier d'achat

Premièrement, présentez la mise en page de la page frontale, comme suit :

<?php
 $conn=mysql_connect("localhost","root","");
 mysql_select_db("shop",$conn);
 mysql_query("set names gb2312");
 $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>
    <td height="28">货物价格:<?php echo $row["price"] ?></td>
  </tr>
  <tr>
    <td height="27" align="center"><a href="buy.php?id=<?php echo $row["pid"] ?>&pname=<?php
echo $row["pname"] ?>">购买</a></td>
  </tr>  
</table>
<?php
}
?>
Copier après la connexion

Voir la page Effet :

Comment implémenter le panier en php

Nous pouvons mettre l'article acheté dans un tableau unidimensionnel, puis mettre tous les tableaux unidimensionnels dans un tableau à deux dimensions, et enfin mettre le tableau à deux dimensions dans le session. Quelle que soit la manière dont vous modifiez les articles achetés à l'avenir, vous pouvez les retirer de la session et les modifier.

<?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)
?>
Copier après la connexion

Code du panier :

<?php
session_start();//启用session
$arr=$_SESSION["mycar"];//从session中拿出二维数组
?>
<form>
//下面将数组里的数据即客户所购买的物品展示出来
<table width="600" height="37" border="1">
  <tr>
    <td width="96">商品ID</td>
    <td width="158">商品名称</td>
    <td width="154">商品数量</td>
    <td width="177">删除</td>
  </tr>
<?php
//遍历这个二维数组
foreach($arr as $a){
?>
   <tr>
    <td width="96"><?php echo $a["pid"] ?></td>//物品的id
    <td width="158"><?php echo $a["name"] ?></td>//物品的名称
    <td width="154"><?php echo $a["num"] ?></td>//物品的数量
    <td width="177"><a href="delete.php?id=<?php echo $a[pid] ?>">删除</a></td>//点击删除超链接到”delete.php”,将物品的id传过去
   </tr>
<?php } ?>
</table>
</form>
<a href="index.php">返回继续购物</a>//返回到首页
Copier après la connexion

Effet de page :

Comment implémenter le panier en php

Lors de la suppression d'un produit, obtenez d'abord l'identifiant du produit à supprimer. Après avoir obtenu l'identifiant, retirez le tableau unidimensionnel correspondant à l'identifiant. dans le tableau bidimensionnel. , effacez le tableau unidimensionnel (unset()), puis remettez le tableau bidimensionnel dans 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");//跳转到购物车
?>
Copier après la connexion

L'effet de la suppression d'un élément :

Comment implémenter le panier en php

Le La fonction du panier est implémentée comme ceci : Achetez un produit pour obtenir l'identifiant et le nom du produit, ajoutez ces deux valeurs plus une quantité (1) et placez-le dans un tableau unidimensionnel. un tableau unidimensionnel, de nombreux produits doivent naturellement utiliser un tableau bidimensionnel. Avant cela, vérifiez d'abord si le produit a déjà été acheté. Si tel est le cas, ajoutez-en un à la quantité précédente. Sinon, recréez un tableau unidimensionnel et placez le tableau unidimensionnel dans un tableau bidimensionnel. dans la séance. Lors de la suppression, obtenez l'ID du produit à supprimer, puis recherchez le tableau unidimensionnel qui stocke le produit dans le tableau bidimensionnel, effacez le tableau unidimensionnel, puis placez le tableau bidimensionnel dans la session. De cette manière, une simple fonction de panier similaire à celle ci-dessus est implémentée.

Il s'agit simplement d'une simple implémentation de la fonction de panier d'achat

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal