Maison >développement back-end >tutoriel php >Tutoriel PHP : Combiner des cookies et des tableaux pour implémenter un panier d'achat
J'ai découvert que les résultats obtenus par de nombreuses fonctions en PHP sont donnés par des tableaux. Le plus couramment utilisé est mysql_fetch_array()
Inclut les informations de chaîne obtenues pour générer un tableau, puis décompose le tableau en une chaîne. en utilisant la fonction éclater() ; implode();
Je n'ai jamais écrit une implémentation telle qu'un panier d'achat auparavant, je sens que je suis un type stupide, je l'ai écrit par intermittence pendant une semaine et j'y ai réfléchi. (J'ai le droit d'être arrogant en tant que novice) faire du shopping.
Et comme je ne suis jamais entré en classe, je me concentre toujours sur le processus.
L'essence de la méthode que j'utilise est la suivante : stocker le cookie dans le tableau, ajouter, supprimer et modifier le tableau. Chaque ensemble d'enregistrements dans le tableau contient des informations sur un produit (numéro, prix, etc. )
L'idée pour résoudre le panier est d'utiliser des cookies pour enregistrer un tableau bidimensionnel. Une dimension représente chaque produit et deux dimensions incluent l'ID du produit, la quantité du produit, etc. Vous pouvez l'ajouter vous-même. Quoi qu'il en soit, il est bidimensionnel. Vous pouvez ajouter autant d'attributs de produit que vous le souhaitez.
Les opérations sur les articles du panier comprennent généralement les opérations suivantes : ajouter des articles, modifier la quantité d'articles, supprimer des articles et vider le panier.
Ces opérations sont toutes destinées aux cookies. A chaque fois, le tableau du cookie est retiré, ajouté, modifié, supprimé, puis enregistré dans le cookie. Quant à vider le panier, c'est encore plus simple. Il suffit de vider le cookie du même nom.
Ce qui suit est la fonction d'opération spécifique que j'ai écrite
//Ajouter au panier
function addcart($goods_id,$goods_num){
$cur_cart_array = unserialize(stripslashes($_COOKIE['shop_cart_info'])); cur_cart_array==""){
$cart_info[0][] = $goods_id;
$cart_info[0][] = $goods_num; serialize($cart_info));
}elseif($cur_cart_array<>""){
//Renvoie le nom de la clé du tableau dans l'ordre inverse et prend la plus grande
$ ar_keys = array_keys($cur_cart_array );
rsort($ar_keys);
$max_array_keyid = $ar_keys[0] 1;
//Parcourir le tableau du panier actuel
//Parcourir chaque tableau d'informations sur le produit a une valeur 0, si la valeur clé est 0 et que le numéro d'article est le même, le même article existe dans le panier
foreach($cur_cart_array as $goods_current_cart){
foreach($goods_current_cart as $ key=>$goods_current_id){
if ($key == 0 et $goods_current_id == $goods_id){
echo ""
exit(); 🎜> }
}
$cur_cart_array[ $max_array_keyid][] = $goods_id;
$cur_cart_array[$max_array_keyid][] = $goods_num; ",serialize($cur_cart_array));
}
}
//Supprimer du panier
function delcart($goods_array_id){
$cur_goods_array = unserialize(stripslashes($_COOKIE['shop_cart_info']) );
//Supprimer la position du produit dans le tableau
unset($cur_goods_array[$goods_array_id] setcookie("shop_cart_info",serialize($cur_goods_array));
}
//Modifier la quantité d'articles dans le panier
function update_cart($up_id,$up_num, $goods_ids){
//Effacez d'abord le cookie afin qu'il puisse être réinitialisé et transmis. Voici trois paramètres de tableau : 1 identifiant de tableau 2 tableau de quantité de produit 3 tableau de numéro de produit
//Si vous ne le faites pas effacez le cookie, vous ne pouvez pas traiter les produits avec une quantité nulle
setcookie("shop_cart_info","");
foreach($up_id as $song){
//Renvoyer d'abord l'unité actuelle de le tableau ; puis déplacez le pointeur vers le bas
$goods_nums = current($up_num);
$goods_id = current ($goods_ids); );
//Lorsque le nombre de marchandises est vide, annulez la valeur du tableau ici et utilisez l'instruction continue 2 pour éviter. Ouvrez l'opération suivante et continuez la boucle foreach
while($goods_nums == 0 ){
unset($chanson);
continuer 2;
$cur_goods_array[$ chanson][0] = $goods_id; 1] = $goods_nums;
}
setcookie("shop_cart_info",serialize($cur_goods_array))
}
Pour la formation ultérieure de la commande, vous devez la stocker en fonction de vos propres besoins, qu'il s'agisse de points, de récompenses en espèces, etc.
Ce qui précède est la combinaison de cookies et de tableaux pour réaliser le contenu du panier. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !