2010-02-08 6 views
2

J'écris un script en PHP, ce qui est assez similaire à un panier. ce que je veux faire est quand un utilisateur ajoute un certain produit j'ai besoin d'ajouter le productid à une variable de session, sans stocker dans une base de données. donc chaque fois que l'utilisateur ajoute un produit, le productid doit être stocké dans une variable de session.stocker des valeurs mutiple en session php

et quand les caisses de l'utilisateur j'ai besoin de récupérer toutes les productids et afficher?

quelqu'un peut-il s'il vous plaît m'expliquer comment le faire? coz im bien avec 1 produit, mais je ne sais pas comment stocker et récupérer plusieurs valeurs.

toute aide sera très appréciée

Répondre

12

place un Array dans le Session. Ajoutez les éléments au tableau.

$_SESSION['cart'] = array(); 
$_SESSION['cart'][] = $apples; 
$_SESSION['cart'][] = $oranges; 
$_SESSION['cart'][] = $pears; 

Note: remplacer $apples, $oranges et $pears avec vos identifiants produit.

Vous accédez au tableau comme tout autre tableau en PHP, par ex. à count les articles:

echo count($_SESSION['cart']); 

et à iterate sur les éléments:

foreach($_SESSION['cart'] as $item) 
{ 
    echo $item; 
} 

Vous pouvez également envelopper la session dans un objet et de fournir l'accès au panier via une interface de méthode, mais je laisse cela pour quelqu'un d'autre à expliquer.

+2

Ensuite, vous pouvez utiliser 'count ($ _ SESSION [ 'panier'])' pour compter le nombre d'articles dans votre panier. Utilisez 'foreach' sur' $ _SESSION ['cart'] 'pour faire défiler chaque élément pour afficher – axsuul

+1

cela vaut probablement la peine de sauvegarder la session dans une base de données et si le client quitte le site avant la fin ou le délai, vous pouvez récupérer le panier le db et le remettre comme une session. – PurplePilot

+0

$ _SESSION ['cart'] = array(); n'est pas nécessaire. – useless

2

Chaque session est un tableau associatif. Vous pouvez stocker d'autres tableaux en elle, comme

$_SESSION['products']=array(); 
$_SESSION['products'][]='123123' 
$_SESSION['products'][]='cow_34526' 

et vous pouvez travailler avec cela comme avec tout autre tableau, à savoir

foreach($_SESSION['products'] as $item){ 
    //display or process as you wish 
    } 
3

Mettez ce qui suit dans un fichier appelé index.php et lui donner un essai :

<?php 
session_start(); 
if(isset($_POST['product'])) { 
    $products = isset($_SESSION['products']) ? $_SESSION['products'] : array(); 
    $products[] = $_POST['product']; 
    $_SESSION['products'] = $products; 
} 
?> 

<html> 
    <body> 
     <pre><?php print_r($_SESSION); ?></pre> 
     <form name="input" action="index.php" method="post"> 
      <input type="text" name="product" /> 
      <input type="submit" value="Add" /> 
     </form> 
    </body> 
</html> 
+0

Merci beaucoup – LiveEn

0
$role=json_encode($checkUser1[0]); 
$role2=str_replace('"','',$role); 
$company=json_encode($checkUser2[0]); 
$company=str_replace('"','',$company); 
$_SESSION['LOGIN_STATUS']=true; 
$_SESSION['UNAME']=$uname; 
$_SESSION['datefrmt']='dd/mm/yy'; 
$_SESSION['role']=$role2; 
$_SESSION['company']=$company; 
+0

Votre réponse doit contenir une explication de votre code et une description de la façon dont il résout le problème. – AbcAeffchen

Questions connexes