Maison  >  Article  >  développement back-end  >  Apprenez à utiliser PHP pour créer un panier d'achat sur un site Web en deux heures

Apprenez à utiliser PHP pour créer un panier d'achat sur un site Web en deux heures

烟雨青岚
烟雨青岚avant
2020-07-14 13:26:502347parcourir

Apprenez à utiliser PHP pour créer un panier d'achat sur un site Web en deux heures

Les achats en ligne sont désormais devenus à la mode. Les clients sélectionnent un article, le mettent dans le panier, puis reviennent pour continuer leurs achats ou passer à la caisse. Comment mettre en œuvre cette fonction ? Aujourd'hui, Capucivar va utiliser PHP pour implémenter cette fonction de panier.

Tout d'abord, créez une page d'accueil simple, interrogez plusieurs produits de la base de données, affichez-les sur la page d'accueil et ajoutez un bouton d'achat . Le code spécifique est le suivant :

<?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
}
?>

D'ailleurs, j'ai oublié d'écrire conn.php, il sert à se connecter à la base de données :

<?php
 $conn=mysql_connect("localhost","root","");
 mysql_select_db("shop",$conn);
 mysql_query("set names gb2312");
?>

Cliquez sur le lien hypertexte pour acheter. Ensuite, allez sur buy.php, Sur cette page, vous devez stocker les articles achetés. Nous pouvons placer les articles achetés dans un tableau unidimensionnel, puis y placer le tableau unidimensionnel de Suoyou. un tableau bidimensionnel, et enfin mettre le tableau bidimensionnel dans la session.

Peu importe la façon dont vous modifiez les articles achetés à l'avenir, vous pouvez les retirer de la session et apporter des modifications. Cela rend la gestion très pratique. Le code spécifique est le suivant :

<?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)
?>

Voici le code du panier :

<?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>//返回到首页

Lors de la suppression d'un produit, récupérez d'abord l'identifiant du produit pour être supprimé.Après avoir obtenu l'identifiant, retirez le tableau unidimensionnel correspondant à l'identifiant obtenu dans le tableau bidimensionnel, effacez le tableau unidimensionnel (unset()), puis remettez le tableau bidimensionnel en session. (). Écrivez le code de suppression ci-dessous :

<?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");//跳转到购物车
?>

Après avoir écrit le code, supprimez le produit avec l'ID 2 qui a été acheté sur capucivar

La fonction panier est relativement simple, juste l'achat et la suppression sont mis en œuvre. En fait, le panier est relativement simple, tant que l'idée est clarifiée, c'est aussi simple que de calculer 1+1.

La fonction du panier est implémentée comme suit : achetez un produit pour obtenir l'identifiant et le nom du produit, ajoutez ces deux valeurs​​plus une quantité (1) et mettez-les dans une seule. -tableau dimensionnel. Un produit est un tableau unidimensionnel, donc de nombreux éléments nécessitent naturellement un tableau bidimensionnel.

Avant cela, vérifiez si vous avez déjà acheté le produit. Si vous l'avez acheté, ajoutez-en un à la quantité précédente. Sinon, recréez un tableau unidimensionnel et placez-le dedans. un tableau bidimensionnel et enfin dans la session.

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. tableau dimensionnel dans la session. De cette façon, une simple fonction de panier d'achat similaire à celle ci-dessus est implémentée.

Merci à tous d'avoir lu, j'espère que vous en bénéficierez beaucoup.

Cet article est reproduit à partir de : https://blog.csdn.net/qq1355541448/article/details/26371777

Tutoriel recommandé : "Tutoriel 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer