Maison  >  Article  >  développement back-end  >  Voyons comment implémenter la fonction d'ajout de produit au panier en PHP (1)

Voyons comment implémenter la fonction d'ajout de produit au panier en PHP (1)

coldplay.xixi
coldplay.xixiavant
2020-07-17 17:21:041846parcourir

Voyons comment implémenter la fonction d'ajout de produit au panier en PHP (1)

Aujourd'hui, je m'entraîne au panier et je soumets des commandes. J'ai un peu le vertige en l'écrivant. Je vais aussi l'organiser d'ailleurs. Ce panier est relativement simple. stockage à court terme et n'est pas stocké dans la base de données, le panier est simplement familier aux personnes qui aiment les achats en ligne. Avant d'écrire le panier, nous devons d'abord le concevoir. J'utilise la table de fruits. , suivie de la table de connexion. J'utilise la table de connexion pour ajuster le nom d'utilisateur et le mot de passe. Une fois que tout est prêt, il y a trois situations dans lesquelles vous devez envisager de le mettre dans le panier :

Première situation : Il n'y a rien dans le panier

Deuxième situation : Il y a déjà ce produit dans le panier. Que faut-il considérer quand. l'ajouter à nouveau est La quantité doit être +1

La troisième situation : Il y a un produit dans le panier, mais ce produit n'existe pas

Recommandations d'apprentissage associées : Programmation PHP Du débutant à la maîtrise

L'image suivante est la table de base de données utilisée :

Voici le code de la page de connexion :

<body>
<form action="chuli.php" method="post">
 <p style="margin-left: 500px; margin-top: 200px;
  height: 250px; width: 250px; border: 1px dashed black">
  <p style="margin-left: 100px; "><h3>登录</h3></p>
  <p style="margin-top: 20px">用户名:<input type="text" name="uid"/></p><br/>
  <p>密 码:<input type="password" name="pwd"/></p><br/>
  <p style="margin-left: 180px"><input type="submit" value="登录"/></p>
 </p>

</form>
</body>

Une fois la page de connexion écrite, vous devez entrer dans la page de traitement et récupérer le nom d'utilisateur et le mot de passe de la base de données :

<?php
session_start(); //开启session 必须要写到第一行
header("Content-type:text/html;charset=utf-8");

$uid=$_POST["uid"]; //从登录页面获取到用户名和密码
$pwd=$_POST["pwd"];

include("DADB.class.php");
$db=new DADB();

$sql="select password from login where username=&#39;{$uid}&#39;";
$arr=$db->Query($sql);

if($arr[0][0]==$pwd && !empty($pwd)) //判断所填写的密码和取到的密码是一样的,而且密码不能为空
{
 $_SESSION["uid"]=$uid;
 header("location:main.php");
}
else
{
 echo"登录失败";
}

La page de connexion est comme indiqué sur la figure :

Nous allons maintenant entrer dans la page principale, récupérer toutes les informations sur les fruits de la base de données, puis nous implémenterons le fonction d'ajout au panier.

<h2>大苹果购物网</h2>
<?php
session_start();
include("DADB.class.php");
$db=new DADB();
?>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
 <tr>
  <td>代号</td>
  <td>水果名称</td>
  <td>水果价格</td>
  <td>原产地</td>
  <td>货架</td>
  <td>库存量</td>
  <td></td>
 </tr>
 <?php

 $uid=$_SESSION["uid"];

 $sql="select * from fruit";
 $arr=$db->Query($sql);
 foreach($arr as $v)
 {
  echo"<tr>
  <td>{$v[0]}</td> // 从数据库调出我们所需要的内容
  <td>{$v[1]}</td>
  <td>{$v[2]}</td>
  <td>{$v[3]}</td>
  <td>{$v[4]}</td>
  <td>{$v[5]}</td>
  <td><a href=&#39;add.php?ids={$v[0]}&#39;>购买</a></td> //这里的购买相当于添加购物车的功能 
 </tr>";
 }
 ?>

 <?php
 //这里显示的是 购物车有多少产品,和产品的总价格
 $ann=array();
 if(!empty($_SESSION["gwc"]))
 {
  $ann=$_SESSION["gwc"];
 }
 $zhonglei = count($ann); 

 $sum=0;
 foreach($ann as $k)
 {
  $sql1="select price from fruit where ids=&#39;{$v[0]}&#39;";

  $danjia=$db->Query($sql1);

  foreach($danjia as $n)
  {
   $sum=$sum + $n[0]*$k[1];
  }


 }
 echo"购物车有<mark>{$zhonglei}</mark>种商品,总价格为<mark>{$sum}</mark>元";
 ?>
</table>
<p>
<a href="gouwuche.php" rel="external nofollow" rel="external nofollow" >查看购物车</a>
<a href="main.php" rel="external nofollow" rel="external nofollow" >浏览商品</a>
<a href="zhanghu.php" rel="external nofollow" rel="external nofollow" >查看账户</a> </p>

</body>

La page principale est telle que montrée sur l'image :

Le plus important est d'ajouter la page du panier

<?php
session_start();

$ids = $_GET["ids"];


if(empty($_SESSION["gwc"]))
{
 //1.购物车是空的,第一次点击添加购物车
 $arr = array(
  array($ids,1)
 );
 $_SESSION["gwc"]=$arr;
}
else
{
 //不是第一次点击
 //判断购物车中是否存在该商品
 $arr = $_SESSION["gwc"]; //先存一下

 $chuxian = false;
 foreach($arr as $v)
 {
  if($v[0]==$ids)
  {
   $chuxian = true;
  }
 }

 if($chuxian)
 {
  //3.如果购物车中有该商品

  for($i=0;$i<count($arr);$i++)
  {
   if($arr[$i][0]==$ids)
   {
    $arr[$i][1]+=1;
   }
  }

  $_SESSION["gwc"] = $arr;
 }
 else
 {
  //2.如果购物车中没有该商品
  $asg = array($ids,1);
  $arr[] = $asg;
  $_SESSION["gwc"] = $arr;
 }

}
header("location:gouwuche.php");

De cette façon, il peut être affiché La page du panier, le code de la page du panier est le suivant :

<h2>购物车中有以下商品:</h2>
<table cellpadding="0" cellspacing="0" border="1" width="100%">
 <tr>
  <td>商品名称</td>
  <td>商品单价</td>
  <td>购买数量</td>
  <td></td>
 </tr>
 <?php
 session_start();
 //$uid=$_SESSION["uid"];

 $arr=array();

 if(!empty($_SESSION["gwc"]))
 {
  $arr=$_SESSION["gwc"];
 }
 include("DADB.class.php");
 $db=new DADB();

 foreach($arr as $v)
 {
  global $db;
  $sql="select * from fruit where ids=&#39;{$v[0]}&#39;";
  $att=$db -> Query($sql,1);
  foreach($att as $n)
  {
   echo"<tr>
  <td>{$n[1]}</td>
  <td>{$n[2]}</td>
  <td>{$v[1]}</td>
  <td><a href=&#39;shanchu.php?ids={$v[0]}&#39;>删除</a></td>
 </tr>";}

 }
 ?>

</table>
<p>
<a href="gouwuche.php" rel="external nofollow" rel="external nofollow" >查看购物车</a> 
<a href="main.php" rel="external nofollow" rel="external nofollow" >浏览商品</a> 
<a href="zhanghu.php" rel="external nofollow" rel="external nofollow" >查看账户</a> </p> 14 15 </body>

En entrant dans la page du panier, vous verrez comme indiqué dans l'image :

C'est juste un ajout relativement simple au panier, mais il y a encore de nombreux liens au milieu qui ne sont pas parfaits. Par exemple, après l'ajout au panier, le nombre de produits dans la base de données est réduit, et la suppression des produits dans le panier n'est pas encore effectuée. Ces opérations seront complétées ultérieurement.

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