Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1333 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  caddie électronique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

caddie électronique

n°1833515
mannou83
Posté le 04-01-2009 à 02:21:08  profilanswer
 


salut
ça fait une semaine que je travaille sur ça et j'arrive a rien Sad
j'espère qu'on pourra m'aider sur ce forum
voila ma page creation.php qui vise a crée panier et l'afficher:
 
<?php
session_start();
require('includes/connection.php');
 
//démarrage de la session
 
$ref = $_GET['prod']; //référence du produit choisi
 
if(isset($ref )){ //si $ref n'est pas vide
 
if(!isset($_SESSION['caddie'])){ //si le caddie n'a pas été encore créé
 
$_SESSION['caddie'] = array(); //création de la variable de session
 
}
 
if(isset($_SESSION['caddie'][$ref ])) { //si ce produit a déjà été choisi
 
$_SESSION['caddie'][$ref ]++; //ajoute 1 a la quantité
 
}else {
 
$_SESSION['caddie'][$ref ] = 1; //si 1er ajout, met la quantité à 1
 
}
}
 
 
//Requête pour récupérer toutes les informations des produits et calcul du prix total.
 
foreach ($_SESSION['caddie'] as $idProduit =>$quantite) {
 
$rq="SELECT * FROM produit where code_pdt='$idProduit'";
 
echo "<table border='2' width='800' height='800'>";
 
$res=mysql_query($rq)or die("erreur dans la requete" );
 
echo "<tr> <th>Nom</th> <th>prix</th> <th>quantite</th> <th>Prix total</th></tr>";
 
while ($ligne=mysql_fetch_array($res)){
 
$nom=$ligne[0];
 
$prix_unitaire=$data[4];
 
if( ! isset( $prix_total) ) $prix_total =0; // l'initialiser si elle n'existe pas
$prix_total='$prix_unitaire*$quantite';
 
if( ! isset( $icaddie) ) $caddie =0; // l'initialiser si elle n'existe pas
$caddie += $prix_totals;
echo"<tr><td>$nom</td><td>$prix_unitaire</td><td>$quantite</td><td>prix_total</td><td>$caddie dinars</td>";
echo"</tr>";
}
echo"</table>";
 
}
?>
 
 
 
voila le liende la page ki envoi vers le lien:echo'<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';
 
 
 
 
j'espère trouver de l'aide
merci Rolling Eyes

mood
Publicité
Posté le 04-01-2009 à 02:21:08  profilanswer
 

n°1833531
esox_ch
Posté le 04-01-2009 à 10:37:28  profilanswer
 

Bon, commence stp par éditer ton post et mettre ton code entre balises :
[ code=php]
[/code]
Pour qu'on y voit plus clair.
Ensuite : Quel est le problème ?


Message édité par esox_ch le 04-01-2009 à 10:37:39

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1833539
sircam
I Like Trains
Posté le 04-01-2009 à 11:34:17  profilanswer
 

Je suis sûr qu'il est possible de réduire la portée du problème et de trouver un cas de reproduction plus élémentaire, à supposer que tu décrives quel est le problème.

 

Je suis tout aussi sûr que les phrases débutent par une majuscule et se terminent par un point.

 

Rassure-moi : tu ne vas *réellement* utiliser ce panier électronique pour vendre des marchandises dans la vraie vie? [:pingouino]

Message cité 1 fois
Message édité par sircam le 04-01-2009 à 11:34:34

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1833541
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 04-01-2009 à 11:40:29  profilanswer
 

sinon donne-nous le site qu'on aille y faire un tour :pt1cable:

Message cité 1 fois
Message édité par NewsletTux le 04-01-2009 à 11:40:48

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1833543
sircam
I Like Trains
Posté le 04-01-2009 à 11:45:54  profilanswer
 

NewsletTux a écrit :

sinon donne-nous le site qu'on aille y faire un tour :pt1cable:


 :non: Ce n'est pas parce que le monsieur écrit mal et qu'il oublie de décrire son probème qu'il faut être méchant. :non:
 

Spoiler :

Par contre, si ce truc passe en production... [:sedna]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1833545
esox_ch
Posté le 04-01-2009 à 11:46:54  profilanswer
 

sircam a écrit :

Je suis sûr qu'il est possible de réduire la portée du problème et de trouver un cas de reproduction plus élémentaire, à supposer que tu décrives quel est le problème.
 
Je suis tout aussi sûr que les phrases débutent par une majuscule et se terminent par un point.
 
Rassure-moi : tu ne vas *réellement* utiliser ce panier électronique pour vendre des marchandises dans la vraie vie? [:pingouino]


 
ça m'est déjà arrivé d'être appelé pour effectuer une consultance sur des scripts en prod de cette qualité là... Comme d'ab c'est une question d'argent.
Il y a des gens qui engagent des petits étudiants (comme moi) pour surveiller le boulot d'autres petits étudiants (qui pondent du script de merde) juste parce qu'on est infiniment moins cher que des professionnels...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1833546
sircam
I Like Trains
Posté le 04-01-2009 à 11:54:25  profilanswer
 

Et c'est reparti pour ce bon vieux débat... *sigh*


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1833547
esox_ch
Posté le 04-01-2009 à 11:56:10  profilanswer
 

Non justement, à mon avis faut juste que l'auteur s'exprime mieux, et je suis sûr (je suis très positiviste) que c'est juste un exercice qu'il fait pour apprendre le PHP :)
Donc une fois qu'il se sera expliqué, on corrigera et tout repartira comme dans le meilleur des mondes :)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1833560
mannou83
Posté le 04-01-2009 à 12:44:19  profilanswer
 

bonjour
je tiens a signaler qu'il sagit d'un petit travail que j'effectue pour mes études ça n'a rien de professionnel  :lol:  
 
le problème de ce script c quand j'appuie sur le lien suivant:
<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';  
sachant que $ligne[0] concerne le produit qu'on a choisit et qu'il es déja affiché a travers une requete vers la base  
et $quantite est une variable que le client précisera dans une zone Jtextfield.
 
ceci dit en cliquant sur le liant ça se dirige vers la page creation.php
qui contient le script suivant:
<?php  
session_start();  
require('includes/connection.php');  
 
//démarrage de la session  
 
$ref = $_GET['prod']; //référence du produit choisi  
 
if(isset($ref )){ //si $ref n'est pas vide  
 
if(!isset($_SESSION['caddie'])){ //si le caddie n'a pas été encore créé  
 
$_SESSION['caddie'] = array(); //création de la variable de session  
 
}  
 
if(isset($_SESSION['caddie'][$ref ])) { //si ce produit a déjà été choisi  
 
$_SESSION['caddie'][$ref ]++; //ajoute 1 a la quantité  
 
}else {  
 
$_SESSION['caddie'][$ref ] = 1; //si 1er ajout, met la quantité à 1  
 
}  
}  
 
 
//Requête pour récupérer toutes les informations des produits et calcul du prix total.  
 
foreach ($_SESSION['caddie'] as $idProduit =>$quantite) {  
 
$rq="SELECT * FROM produit where code_pdt='$idProduit'";  
 
echo "<table border='2' width='800' height='800'>";  
 
$res=mysql_query($rq)or die("erreur dans la requete" );  
 
echo "<tr> <th>Nom</th> <th>prix</th> <th>quantite</th> <th>Prix total</th></tr>";  
 
while ($ligne=mysql_fetch_array($res)){  
 
$nom=$ligne[0];  
 
$prix_unitaire=$data[4];  
 
if( ! isset( $prix_total) ) $prix_total =0; // l'initialiser si elle n'existe pas  
$prix_total='$prix_unitaire*$quantite';  
 
if( ! isset( $icaddie) ) $caddie =0; // l'initialiser si elle n'existe pas  
$caddie += $prix_totals;  
echo"<tr><td>$nom</td><td>$prix_unitaire</td><td>$quantite</td><td>prix_total</td><td>$caddie euro</td>";  
echo"</tr>";  
}  
echo"</table>";  
 
}  
?>  
 
 
et que le résultat d'affichage du panier donne quasiment rien de cke je m'y attend sauf le message suivant 100 euro, au deuxième clic 200 euro et ça ne s'arrete de s'incrémenter.
j'espère que je me suis enfin bien exprimé  :D  
merci

n°1833565
esox_ch
Posté le 04-01-2009 à 13:02:26  profilanswer
 

Bon sang, fout ton code entre balises code (comme je l'ai dit plus haut) sinon personne ne t'aidera


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 04-01-2009 à 13:02:26  profilanswer
 

n°1833575
mannou83
Posté le 04-01-2009 à 13:35:21  profilanswer
 

bonjour  
je tiens a signaler qu'il sagit d'un petit travail que j'effectue pour mes études ça n'a rien de professionnel    
 
le problème de ce script c quand j'appuie sur le lien suivant:  
<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';  
sachant que $ligne[0] concerne le produit qu'on a choisit et qu'il es déja affiché a travers une requete vers la base  
et $quantite est une variable que le client précisera dans une zone Jtextfield.  
 
ceci dit en cliquant sur le liant ça se dirige vers la page creation.php  
qui contient le script suivant:  
 
 

Code :
  1. <?php  
  2. require('includes/connection.php');  
  3.  
  4. //démarrage de la session  
  5.  
  6. $ref = $_GET['prod']; //référence du produit choisi  
  7.  
  8. if(isset($ref )){ //si $ref n'est pas vide  
  9.  
  10. if(!isset($_SESSION['caddie'])){ //si le caddie n'a pas été encore créé  
  11.  
  12. $_SESSION['caddie'] = array(); //création de la variable de session  
  13.  
  14. }  
  15.  
  16. if(isset($_SESSION['caddie'][$ref ])) { //si ce produit a déjà été choisi  
  17.  
  18. $_SESSION['caddie'][$ref ]++; //ajoute 1 a la quantité  
  19.  
  20. }else {  
  21.  
  22. $_SESSION['caddie'][$ref ] = 1; //si 1er ajout, met la quantité à 1  
  23.  
  24. }  
  25. }  
  26.  
  27.  
  28. //Requête pour récupérer toutes les informations des produits et calcul du prix total.  
  29.  
  30. foreach ($_SESSION['caddie'] as $idProduit =>$quantite) {  
  31.  
  32. $rq="SELECT * FROM produit where code_pdt='$idProduit'";  
  33.  
  34. echo "<table border='2' width='800' height='800'>";  
  35.  
  36. $res=mysql_query($rq)or die("erreur dans la requete" );  
  37.  
  38. echo "<tr> <th>Nom</th> <th>prix</th> <th>quantite</th> <th>Prix total</th></tr>";  
  39.  
  40. while ($ligne=mysql_fetch_array($res)){  
  41.  
  42. $nom=$ligne[0];  
  43.  
  44. $prix_unitaire=$data[4];  
  45.  
  46. if( ! isset( $prix_total) ) $prix_total =0; // l'initialiser si elle n'existe pas  
  47. $prix_total='$prix_unitaire*$quantite';  
  48.  
  49. if( ! isset( $icaddie) ) $caddie =0; // l'initialiser si elle n'existe pas  
  50. $caddie += $prix_totals;  
  51. echo"<tr><td>$nom</td><td>$prix_unitaire</td><td>$quantite</td><td>prix_total</td><td>$caddie euro</td>";  
  52. echo"</tr>";  
  53. }  
  54. echo"</table>";  
  55.  
  56. }  
  57. ?>


 
 
et que le résultat d'affichage du panier donne quasiment rien de cke je m'y attend sauf le message suivant 100 euro, au deuxième clic 200 euro et ça ne s'arrete de s'incrémenter.  
j'espère que je me suis enfin bien exprimé    
merci

n°1835543
omega2
Posté le 08-01-2009 à 13:04:36  profilanswer
 

Rajoute "error_reporting  (E_ALL ^ E_STRICT);" une ligne en dessous du premier "<?php" et admire le résultat.
Ensuite tu liras le spoiler ci-dessous pour les explications si tu ne trouves pas tout seul. A noter que quasiment toutes tes erreurs sont des erreurs d'inattention.
 

Spoiler :

$ligne[0] et $data[4] ???
$prix_total='$prix_unitaire*$quantite'; ??? Un prix = du texte ???
 
"if( ! isset( $icaddie) ) $caddie =0;" ??? heu oui, donc si la variable X n'existe pas, je met la variable toto à 0. Logique ...
 
$prix_totals ... qui vient de ?
 
Vu qu'à chaque fois que t'appelle cette page tu augmentes la quantité de 1, tu t'attendais vraiment à ce que la quantité ne bouge pas?


 
PS : Au fait, t'as pensé à regarder le code de la page reçu par le navigateur et pas juste ce que le navigateur affiche à l'écran?

n°1835737
Profil sup​primé
Posté le 08-01-2009 à 18:12:08  answer
 

mannou83 a écrit :

bonjour

Code :
  1. <?php  
  2. require('includes/connection.php');  
  3.  
  4. //démarrage de la session  
  5.  
  6. $ref = $_GET['prod']; //référence du produit choisi  
  7.  
  8. if(isset($ref )){ //si $ref n'est pas vide



 
Euh là tu ne saisis pas très bien le problème :
 
Tu crées une variable $ref avec comme valeur $_GET['ref']. Sauf que si $_GET['ref'] n'est pas configuré, $ref sera vide !
Puis tu testes $ref avec isset. Pour rappel, isset teste l'existence d'une variable, or, ce test renverra toujours TRUE puisque $ref est défini juste au dessus.
Tu devrais le tester avec empty ou avec is_numeric

n°1835937
mannou83
Posté le 09-01-2009 à 13:22:54  profilanswer
 

merci pour vos conseils, ça été enfin résolu ;))


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  caddie électronique

 

Sujets relatifs
[RESOLU]fonction mail qui ouvre messagerie[PHP] Script Boutique simple sans caddie, pour occasions
Piloter circuit électronique via un portcaddie
pétition électroniquechoix du button radio à mettre dans un caddie
[VBA-access]:Publipostage de document WORD par messagerie électroniqueGestion caddie avec Access / Excel
Besoin d'aide pour réaliser un caddie..Problème avec un caddie (ajouter un article déjà dedans) [Résolu]
Plus de sujets relatifs à : caddie électronique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR