Page 1 sur 1

Affichage de caddie

Posté : 18 mai 2010, 13:10
par Nouvo developpeur
Bonjour a tous. Je débute en PHP et je n'ai pu avoir une réponse coté forum PHP débutant.
Voila je développe un projet d'étude qui consiste a un site e-commerce. (site de vente de matériel informatique)
Quand j'affiche mon caddie j'obtiens la même ligne qui se répète 7 fois !!
Puis quand je sélectionne un autre produit ca m'écrase le produit précédent !
Est ce que quelqu'un peut m'aider svp
Voila le code : Ajout caddie.php
<?php
	session_start();
	require ('bordure_haut.inc');
$_SESSION['caddie']=array('id'=>'','Photo'=>'','Libelle'=>'','Marque'=>'','Caracterestique'=>'','quantite'=>1, 'Prix_vente'=>'' );	

require ('haut_de_page.php');	

print "<table border='1' bgcolor='aliceblue'  cellspacing='3'><caption><tr>";
print "</table>";
print "<font color ='blue' align ='center'><h1>Votre caddie</h1></font>";
print "<body bgcolor='aliceblue'>";
print "</table></br></br></br>";
print "<table border='1' bgcolor='#87CEFA' bordercolor='0' cellspacing='3' align='center'><caption><tr>";
print "<th width='10%'>id</th><th  width='10%'>Photo</th><th width='25%'>Libellé</th><th width='50%'>Caracterestisues</th><th 
                 width='10%'>Quantité</th></td>";
print "<th  width='20%'>Prix (TTC)</th><th width='5%'>Supprimer</th></tr>";

$color1='#00BFFF';
$color2='#87CEFA';

if (!empty ($SESSION['qte']))		
$_SESSION[qte]=1;	
		reset($_SESSION['caddie']);
		while(list($id, $contenu)= each($_SESSION['caddie']))		
		{		
		//on affiche le résultat
		print '<tr>';
		print "<td width='10%' bgcolor='$color1' align='center'><h4>$_SESSION[id]</h4></th>";
		print "<td width='10%' bgcolor='$color1' align='center'><ahref='$_SESSION[Photo]' target=''><img src='$_SESSION[Photo]' 		

	                      border='0' height='40' width='40' alt='Agrandir'></a></th>";
		print "<td width='30%' bgcolor='$color1' align='center'><h4>$_SESSION[Libelle]</h4></th>";
		print "<td width='50%' bgcolor='$color1' align='center'><h4>$_SESSION[Caracterestique]</h4></th>";
		print "<td width='10%' bgcolor='$color1' align='center'><h4><table border=0 >";
		print "<td rowspan=2><input type='text' name='Nom' value=$_SESSION[qte]></td>";
		print "<td><a href='addition.php?qte=$_SESSION[qte]'><img border=0 

                             src='C:\Program Files\EasyPHP\www\Projet\IMAGES\quantite_plus.bmp'></td></a></tr>";
		print "<tr><td><a  href='soustraction.php?qte=$_SESSION[qte]'><img border=0 src='C:\Program 

                                   Files\EasyPHP\www\Projet\IMAGES\quantite_moin.bmp'></a></td></tr>";

			print "</table>";
			print "</h4></th>";
		print "<td width='20%' bgcolor='$color1' align='center'><h4>".$_SESSION['Prix_vente'] * $_SESSION['qte']." €</h4></th>";
		print "<td width='10%' bgcolor='$color1' align='center'><a href=''><img src='images/delete.gif' border='0' height='20' width='20' 

                                   alt='supprimer'></a></th>";
		print "</tr>";	
		$color3=$color2 ;
		$color2=$color1 ;
		$color1=$color3 ;
		}
		print '</table></br>';
		//$total=$total+$Prix_vente;
		print "<table border='0' bgcolor='#B0C4DE' bordercolor='0' cellspacing='3' align='right'><caption><tr>";
		print '</table></br>';
		
		print "<center><table border='0' color='aliceblue' cellspacing='3'><caption><tr>";
		echo '<tr><td><center><ahref="acheter_caddie.php?montant=$total"><img src="image/bouton_page_achat1.gif" 	

		               border="0"/></a></center></td>'.'<td><center><a href="vider_caddie.php"><img 

                                  src="image/bouton_page_vider.gif" border="0"/></a></center></td><td><center><a 		

	href="acceuil.php"><img src="image/retour.gif" 

border="0"/></a></center></td></tr>';
		print '</table></center>';

	

		require ('bordure_bas.inc');

?>

Re: Affichage de caddie

Posté : 18 mai 2010, 14:05
par ouckileou
Si tu nous faisais une version allégée, sans tout le HTML autour ? je suis sûr que déjà plus de gens se pencherait sur ton problème, là on part de rien et faut se taper tout ton code, ça donne pas envie.

Re: Affichage de caddie

Posté : 18 mai 2010, 14:41
par macgawel
Ca risque aussi d'être difficile de voir ce qui ne va pas si on n'a pas de quoi générer le contenu de $_SESSION #-o

Première chose à faire : vérifier le contenu de ta variable $_SESSION, justement.

Deuxième chose à faire : activer le rapport d'erreurs PHP. Parce que tu en as quelques-unes...

Et si tu peux m'expliquer à quoi est sensé te servir le $_SESSION['caddie'], je t'en serais reconnaissant. Parce que là, c'est juste un tableau qui contient des clés vides :roll:



[HS]
1. Utilise des CSS, au lieu de donner les indications de présentation dans le HTML, ça éclaircit le code et le rend plus simple à maintenir.
2. Evite les chemins absolus pour tes images. Le jour où tu changes de serveur, tu ne sera pas obligé de tout refaire.
3. pour les liens, pense à ceux qui n'ont pas la possibilité de voir les images - mets du texte entre les balises <a></a>.
4. C'est quoi ce ahref="acheter_caddie.php?montant=$total" ? Il se passe quoi si je tape l'adresse acheter_caddie.php?montant=1 ?
5. Pense à vérifier que le code HTML produit est valide...
[/HS]

Re: Affichage de caddie

Posté : 19 mai 2010, 07:39
par Nouveau develop
Désolé pour la longueur de mon code. Je vais essayer de faire plus court car vraiment j'ai besoin de votre aide (ca me fait plaisir quand je vois des gens me repondre) :
Il s'agit de la page ajout_caddie.php qui est déclenchée par la page detail_piece.php?id=$_contenu[id] && Photo=$_contenu[Photo] && .....tout les variables
<?php
        session_start();
        require ('bordure_haut.inc');
$_SESSION['caddie']=array('id'=>'','Photo'=>'','Libelle'=>'','Marque'=>'','Caracterestique'=>'','quantite'=>1, 'Prix_vente'=>'' );     
//Les variable sont vide car j'ai eu des messages d'erreur indefined variable quand j'ai affecté des valeurs Genre 'id'=>'$_GET[id]'
//C'est pour cela j'ai tout stocker dans la variable SESSION depuis la page detail_piece.php
require ('haut_de_page.php');  

//<La j'ai mis du HTML ==> entete du tableau avec les colones id, Photo, Libelle, quantite, ..>

if (!empty ($_SESSION['qte']))   //Si  pas de quantite mettre a 1
$_SESSION[qte]=1;      
                reset($_SESSION['caddie']);
                while(list($id, $contenu)= each($_SESSION['caddie']))    //c'est la mon probleme je sais ce code n'est pas bon mais je n'arrive pas m'exprimer la dessus (Moi je veux dire a chaque fois que je selectionne un produit le rajouter en ligne suivante du panier tout en gardant la ligne precedente)      
                {              
                //on affiche le résultat
               //Code HTML qui affiche le tableau d'une ligne ayant pour colone : $_SESSION[id,], $_SESSION[Photo], ......, $_SESSION[caracteristique]
                 }
               

                require ('bordure_bas.inc');

?>

Re: Affichage de caddie

Posté : 19 mai 2010, 11:33
par Nouveau develop
En fait la si j'enlève le "while" { }, j'obtiens bien ma ligne
Par contre si je revient pour sélectionner un autre produit ca écrase le produit précédent !
Quelqu'un peut m'aider pour empiler les lignes au niveau du caddie svp ?