FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [Résolu]if qui ne fonctionne pas
 

[Résolu]if qui ne fonctionne pas

Il y a 269 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [Résolu]if qui ne fonctionne pas
 
Plus d'informations

Bonjour à tous,  
Je suis en train de tourner en rond et je ne vois pas que faire pour m'en sortir...  
 
J'ai un formulaire qui me permet de sélectionner des choix avec des checkbox et j'aimerai que si tel ou tel choix est sélectionné, la somme totale s'incrémente.  
 
Pour cela, je fais un if qui vérifie si le $choix est égal à une valeur de mon tableau et si oui, j'incrémente ma somme...  
 
Mais malheureusement  :( , on entre jamais dans mon if...  
 
Voilà mon code:
 

Code :
  1. <?php
  2.     include("secure.php" );
  3.     include("pcdb.php" );
  4.     $connexion = mysql_connect($hote, $utilisateur, $mdp);
  5.     $choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes" );
  6.     if(isset($_POST['Total']))
  7.     {
  8.         if(!empty($_POST['commande']))
  9.         {
  10.             $commande = $_POST['commande'];
  11.             $sql = "SELECT libelle, prix FROM prix, produit WHERE produit.idproduit = prix.idproduit";
  12.             $req = mysql_query($sql) or die (mysql_error());
  13.             while ($data = mysql_fetch_array($req))
  14.             {
  15.                 $libelle = $data['libelle'];
  16.                 foreach($commande as $choix)
  17.                 {
  18.                     echo '$data: '.$libelle;?><br /><?php
  19.                     echo '$choix: '.$choix;?><br /><?php
  20.                     echo $data['prix'];?><br /><br /><?php
  21.                     if($libelle == $choix)
  22.                     {
  23.                         echo 'Somme Avant: '.$somme;
  24.                         $prix = $data['prix'];
  25.                         $somme = $somme + $prix;
  26.                         echo $data['prix'];
  27.                         echo 'Somme Après: '.$somme;
  28.                     }
  29.                 }
  30.             }
  31.         }
  32.     }
  33. ?>
  34. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  35. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  36.    <head>
  37.        <title>LOGEM SOFTWARE ENGINEERING SA - Achat licence</title>
  38.        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  39.        <meta name="description" content="LOGEM SOFTWARE ENGINEERING SA" />
  40.        <meta name="keywords" content="aide à la planification" />
  41.    </head>
  42. <body>
  43.     <form action="test2.php" method="post">
  44.     <?php
  45.         $sql = "SELECT produit.idproduit, libelle, prix FROM prix, produit WHERE produit.idproduit = prix.idproduit";
  46.         $req = mysql_query($sql) or die(mysql_error());
  47.         while ($data = mysql_fetch_array($req))
  48.         {
  49.     ?>
  50.         <div>
  51.             <span><input type="checkbox" name="commande[]" value=" <?php echo $data['libelle'];?>"><?php echo $data['libelle'];?></span>
  52.             <span>Prix:</span>
  53.             <span><?php echo $data['prix'];?></span>
  54.         </div>
  55.     <?php
  56.         }
  57.         mysql_close();
  58.     ?>
  59.         <div><strong>Total: </strong><?php echo $somme; ?></div>
  60.         <div>
  61.             <span><input type="reset" name="Effacer" value="Effacer" /></span>
  62.             <span><input type="submit" name="Total" value="Total" /></span>
  63.             <span><input type="submit" name="Commander" value="Commander" /></span>
  64.         </div>
  65.     </form>
  66. </body>
  67. </html>


 
Merci d'avance pour votre aide!
 :hello:


Message édité par fgiuliano le 16-01-2007 à 11:18:43

Profil : Pointeur
Plus d'informations

[:pingouino]
 
et si tu apprenais le sql ?

Plus d'informations

a écrit :

[:pingouino]
 
et si tu apprenais le sql ?


 
Merci pour ton aide, ça fait plaisir!  

Plus d'informations

Je ne sais pas si c'est la meilleure façon de faire, mais en tout cas, ça fonctionne!  :)  
 

Code :
  1. <?php
  2.     include("secure.php" );
  3.     include("pcdb.php" );
  4.     $connexion = mysql_connect($hote, $utilisateur, $mdp);
  5.     $choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes" );
  6.     if(isset($_POST['Total']))
  7.     {
  8.         if(!empty($_POST['commande']))
  9.         {
  10.             $liste = implode(',',$_POST['commande']);
  11.             $sql = "SELECT * FROM prix, produit WHERE produit.idproduit = prix.idproduit AND produit.idproduit IN($liste)";
  12.             $req = mysql_query($sql) or die (mysql_error());
  13.             while($data = mysql_fetch_array($req))
  14.             {
  15.                 $somme = $somme + $data[prix];
  16.             }
  17.         }
  18.     }
  19. ?>


 
Pour ceux que ça intéresse!  :hello:

zeb
Profil : Modérateur libre
Plus d'informations

:jap:

Plus d'informations

Et encore mieux pour éviter la boucle!  :)  
 

Code :
  1. <?php
  2.     include("secure.php" );
  3.     include("pcdb.php" );
  4.     $connexion = mysql_connect($hote, $utilisateur, $mdp);
  5.     $choix_base = mysql_select_db($data_base, $connexion)or die("Impossible d'ouvrir le fichier de comptes" );
  6.     if(isset($_POST['Total']))
  7.     {
  8.         if(!empty($_POST['commande']))
  9.         {
  10.             $liste = implode(',',$_POST['commande']);
  11.             $sql = "SELECT SUM(prix) AS Total FROM prix, produit WHERE produit.idproduit = prix.idproduit AND produit.idproduit IN($liste)";
  12.             $req = mysql_query($sql) or die (mysql_error());
  13.             $res = mysql_fetch_assoc($req);
  14.             $somme = $res['Total'];
  15.         }
  16.     }
  17. ?>


 
Voilà, et merci!  :hello:

Profil : Pointeur
Plus d'informations

bha voila !
 
et si ta version de mysql te le permet, faut un exists au lieu du in ce sera un peut plus optimisé ;)
 
d'alleuir ? pourquoi deux tables ?


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [Résolu]if qui ne fonctionne pas
 

Annonces Google
Publicité