gestion d'un tableau en session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : gestion d'un tableau en session

par Invité » 26 oct. 2005, 22:23

Milles excuses

par zeus » 26 oct. 2005, 16:41

Modération : Bernard, quand tu poste un code PHP, pense à utiliser les balises
 et [CODE] qui sont au dessus de la zone de saisie du texte.

C'est plus joli et plus facile à lire ;)
Pour cette fois, je l'ai fait pour toi[/color]

par Bernard » 26 oct. 2005, 16:24

Je l'ai fait sans succès mais je vais recommencer.

On m'a communiqué un bout de code qui marche (j'ai remplacé les POST parGET) :
<?php

session_start();
if ( isset($_POST['element']) ) {
$_SESSION['arr'][] = array( 'ref' => $_POST['element'] );
}

echo "<hr>";
foreach( $_SESSION['arr'] as $v ) {
echo $v['ref']."<br>";
}
echo "<hr>";

?>
<form method="post" action="test_session.php">
<input type="text" name="element">
<input type="submit">
</form>

par pitt » 26 oct. 2005, 15:50

ca fait trois fois que je te dis d'essayer d'extraire ta variable de session pourquoi ne le fais tu pas???
<?session_start(); 
$refex=$_GET['refex']; 
$tableau=$_SESSION['tableau']; 
$tableau[]= array( 'ref' => $refex); 
$_SESSION['tableau']=$tableau; 
header("Location:fiche_produit_pro.php?refex=$refex"); 
?> 

par Invité » 26 oct. 2005, 15:47

Je galère bien.....


Voilà où j'en suis :


1. l'ajout d'articles
<?session_start();
$refex=$_GET['refex']; 
$_SESSION['tableau'][]= array( 'ref' => $refex); 
header("Location:fiche_produit_pro.php?refex=$refex"); 
?> 




2. lecture du panier
<?session_start();
$tableau=$_SESSION['tableau']; 
foreach ($tableau as $v => $article) 
echo $article['ref'].'<br>'; 
?> 
Mais je ne peux toujours commender q'une référence !!!


[/php]

par pitt » 26 oct. 2005, 15:32

voila en fait tu as oublié une chose
<?session_start(); 
$tableau=$_SESSION['tableau']; 
foreach ($tableau as $v => $article) {
echo $article['ref'].'<br>'; }
?> 

par Invité » 26 oct. 2005, 15:08

Non toujours pas. Je craques. Le code me parait bon. Le tableau est bien en session. Mais il ne cumule pas les valeurs....

par pitt » 26 oct. 2005, 14:11

essaie de faire ca
<?session_start(); 
$refex=$_GET['refex']; 
$tableau=$_SESSION['tableau'];
$tableau[]= array( 'ref' => $refex); 
$_SESSION['tableau']=$tableau;
header("Location:fiche_produit_pro.php?refex=$refex"); 
?> 
Et je pense que ca devrait aller

PS: essaie de placer ton code PHP entre les balises [ php ] et [ /php ] que tu peux obtenir en cliquant sur les boutons au dessus du message que tu écris.Ton message sera plus lisible. Merci

par Invité » 26 oct. 2005, 11:31

J'en suis là :

Fichier d'ajout d'un article :
<?session_start();
$refex=$_GET['refex'];
$_SESSION['tableau'][]= array( 'ref' => $refex);
header("Location:fiche_produit_pro.php?refex=$refex");
?>
-----------------------------------------
Fichier de lecture du panier :
<?session_start();
$tableau=$_SESSION['tableau'];
foreach ($tableau as $v)
echo $v['ref'].'<br>';
?>
-----------------------------------------------------------------
Le problème que je rencontre est que je ne peux ajouter q'un même article.

Je peux par exemple ajouter 15 fois l'article pommes. Mais si je veux ajouter des poires, j'ajoute les poires mais je supprime les pommes. en tous cas elles ne s'affichent plus...


Si vous avez une idée ..

Merci à tous

par pitt » 26 oct. 2005, 10:44

qu'entends tu par indicer le tableau

à chaque fois que tu ajoutes un couple dans ton tableau avec panier[]=x
il passe à l'indice suivant.

Et au lieu de faire ta boucle avec i=0 à taille du tableau il existe une fonction foreach cela donnerait
foreach ($panier as $cle=>$indice){
if ($panier[$indice]['article']==$_GET['article'])
    {
        ....
     }
}

Et ca devrait fonctionner de cette façon

par Bernard » 25 oct. 2005, 16:01

Je pense que c'est l'idée. Il faut que je planche sur les tableaux associatifs (stockées ensuite en variable de session).


Faut il obligatoirement indicer ce tableau ?

Merci de ton aide

par pitt » 25 oct. 2005, 15:51

Pourquoi tu n'extrais pas ton panier de ta variable session
$panier=$_SESSION['Panier'];
Puis tu fais tes traitements sur $panier et apres tu redéclares ton nouveau panier en variable de session
$_SESSION['Panier']=$panier;

gestion d'un tableau en session

par bernard » 25 oct. 2005, 15:07

Je souhaite entrer des variables dans un tableau, puis en retirer en fonction de critères (un panier par exemple)

Création du tableau (on arrive ici avec une variable "ajouter" en mode GET)
$_SESSION[panier][] = array( 'article' => $_GET['article'],'prix' => $_GET['prix'])
Je voudrais maintenent retirer un article (on arrive ici avec une variable Retrait en mode GET):
 for ($i=0; $i < taille du tableau....; $i++)
    {
    if ($_SESSION['panier'][$i]['article'] == $_GET['article'] )
      {
      unset($_SESSION['panier'][$i]);
Mai ca marche pas....

Je suis pas sur du tout du code.

Merci si vous pouvez m'aider un peu....