Bonjour,
Voilà lorsque je modifie les quantités de mon panier, $_SESSION(list]se remet à zéro, idem lorsque je fais un nouvel ajout.
J'envoie le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<?php
session_start();
//init des variables
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if(!isset($_GET['ajout'])) $ajout="";//init de ajoutPanier si non déclaré
else  $ajout=$_GET['ajout']; 
if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
else $modifPanier=$_GET['modifPanier'];
if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré
else $suppPanier=$_GET['suppPanier'];
if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré
else $enregistreCommande=$_GET['enregistreCommande'];
if ((!isset($_SESSION['liste']))&&($ajout=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE
if (isset($_SESSION['liste'])) 
	$liste=$_SESSION['liste'];//recup de la liste de la session
 
$hostname_connectionebook = "localhost";
$database_connectionebook = "ebook";
$username_connectionebook = "root";
$password_connectionebook = "";
$ebook = mysql_connect($hostname_connectionebook, $username_connectionebook, $password_connectionebook) or die(mysql_error());
 
mysql_select_db('ebook',$ebook);
 
//----------------------------------------------------AJOUT PANIER
if ($ajout == "AJOUT")
{
	$idLivre=$_GET['idLivre'];
	$nb=1; //par défaut la quantité est = 1
	$prix=$_GET['prix'];
	$_SESSION['liste'][] = array ("id" => $_GET['idLivre'],"nb" => $nb,"prix" => $_GET['prix'],"prix_total" => $_GET['prix']);
	$_SESSION['ajout']=$ajout;
  }
	//ajoute un article à la liste
 
 
 
//----------------------------------------------------MODIF PANIER
if ($modifPanier=="ACTUALISER" )
{
 
	 $article=$_GET['article'];
	 $prix=$_GET['prix'];
	 $nbprod=count($_SESSION['liste'][]);
	 printf($nbprod);
	 for ($i=0;$i<count($_SESSION['liste']);$i++)
		{
		$nbi='nb'.$i;
	    $_SESSION['liste'][] = array ("id" => $_GET['article'],"nb" => $nbi,"prix" => $_GET['prix'],"prix_total" => $_GET['prix']*$nbi);
		}
 
	printf($article);
	print($modifPanier);
	$_SESSION['liste']=$liste;//mAj de la liste
}

html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
		<?php
		   $total=0.00;
  				for ($i=0;$i<count($_SESSION['liste']);$i++){
				$query_rsPanier="select * from livre where idLivre = '".$_SESSION['liste'][$i]['id']."'";
				$rsPanier = mysql_query($query_rsPanier, $ebook) or die(mysql_error());
  				$row_rsPanier = mysql_fetch_assoc($rsPanier);
						$_SESSION['titre']=$row_rsPanier['titre'];
 
		?>
		<tr class="lignepanier">
			<td align="left"><?php echo $_SESSION['titre'] ;
								   $article=$row_rsPanier['idLivre'];?></td>
			<td> 
                <select name="nb<?php echo $i ?>" id="nb">
                  <option value="1"  <?php if($_SESSION['liste'][$i]['nb']==1) echo "SELECTED"; ?>>1</option>
                  <option value="2" <?php if($_SESSION['liste'][$i]['nb']==2) echo "SELECTED"; ?>>2</option>
                  <option value="3" <?php if($_SESSION['liste'][$i]['nb']==3) echo "SELECTED"; ?>>3</option>
                </select>
				<input type="hidden" name="article" value="<?php echo $row_rsPanier['idLivre'];?>"/>
				<input type="hidden" name="prix" value="<?php echo $row_rsPanier['prix_eyrolles'];?>"/>
 
			</td>
			<td><?php echo $row_rsPanier['prix_eyrolles'] ?></td>
			<td><?php echo $row_rsPanier['prix_eyrolles'] * $_SESSION['liste'][$i]['nb']?> EUR</td>
			<td align="right">
			<img src="images/mettredecote.gif"/><br/>
			<a href="panier.php?suppPanier=SUPPRIMER&article=<?php echo $row_rsPanier['idLivre'] ?>">
			<img src="images/supprimerpanier.gif"/>
			</a>
			</td>		
		</tr>
 
		 <?php
 	      $total+=$row_rsPanier['prix_eyrolles'] * $_SESSION['liste'][$i]['nb'];
 
         $_SESSION['total']=$total;//mAj du total dans la session
 
?>
		<tr class="interlignepanier"><td></td></tr>
		<tr class="lignepanierbottom">
			<td align="left">TOTAL </td>
			<td></td>
			<td></td>
			<td><?php echo $total ?> EUR</td>
		</tr>
 
	</table>
	    <p>
		Vous avez modifié une quantité?
		</p>
		<p class="form">
		<input type="image" src="images/mettreajour_panier.gif" name="modifPanier" value="ACTUALISER"/><?php }?>
merci d'avance