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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème pour additionner des variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème pour additionner des variables

n°1576034
hppp
Serveur@home
Posté le 17-06-2007 à 21:27:59  profilanswer
 

salut a tous
 
Je suis un débutant en php et je suis en trains de faire un formulaire pour pouvoir passer une commande sur mon site web.
Mais voila mon problème, j'ai programmé se code:

Code :
  1. <?php
  2.    include('config.php');
  3.    // connection à la BDD
  4.    mysql_connect("$db_host", "$db_user", "$db_pass" ); // Connexion au serveur MySQL
  5.        mysql_select_db("$db" ); // Sélection de la base lcg
  6.    //recuperation des infos
  7.    $produits = mysql_query("SELECT reference,designation,prix FROM bt_pro_produits" );
  8.    //boucle pour récuperer les infos
  9.    while ($donnees = mysql_fetch_array($produits) )
  10.  
  11.    {
  12. ?>
  13. <tr>
  14.        <td><?php echo $donnees['reference']; ?></td>
  15.        <td><?php echo $donnees['designation']; ?></td>
  16.        <td><?php echo $donnees['prix']; ?></td>
  17.    <td>
  18. <input type="text" name="quantite" value="0" /></td>
  19.    </tr>
  20. <?php


 
Mais mon problème c'est que j'ai plus de 100 produits dans ma BDD et la variable $_POST['quantite'] que je vais récupérer dans une autre page pour calculer le nombre de produits a le même nom pour tous les produits alors je ne pourrai pas faire d'addition du nombre de produits sélectionné je pense et après calculer le prix et plusieurs trucs? avez vous une idée pour faire se que je veux faire? merci

mood
Publicité
Posté le 17-06-2007 à 21:27:59  profilanswer
 

n°1576038
flo850
moi je
Posté le 17-06-2007 à 21:56:23  profilanswer
 

remplace  
<input type="text" name="quantite" value="0" />
 
par
<input type="text" name="quantite_<? echo  $donnees['reference']; ?>" value="0" />
 
et ensuite dans ta page de traitement, tu fais :

Code :
  1. foreach($_POST as $cle => $valeur)
  2. {
  3.     if(strpos('quantite') === false) // les 3 egals sont importants
  4.            continue;
  5.     $ref = substr($cle,8);
  6.     $quantite = $valeur;
  7. // ici tu traite le resultat
  8. }

n°1576041
hppp
Serveur@home
Posté le 17-06-2007 à 22:09:22  profilanswer
 

ok merci je vais esseyer de comprendre et d'en faire un truc.

n°1576062
jeca
Posté le 18-06-2007 à 05:48:18  profilanswer
 

Bonjour,
 
Il serait plus simple d'utiliser un tableau :

Code :
  1. //3


Et pour récupérer :

Code :
  1. <?php
  2. foreach ($_POST['quantite'] as $reference => $quantite)
  3. {
  4.   //-- traitement --------------------
  5. }
  6. ?>


Message édité par jeca le 18-06-2007 à 05:50:07
n°1576067
hppp
Serveur@home
Posté le 18-06-2007 à 07:10:55  profilanswer
 

la j'ai un peut de mal, si je voulais calculer le nombre de produits sélectionné en fonction de la quantité grâce à la référence je ferai comment? merci


Message édité par hppp le 18-06-2007 à 07:13:33
n°1576069
jeca
Posté le 18-06-2007 à 07:27:32  profilanswer
 

Désolé, mais une ligne a sauté :
<input type="text" name="quantite[<? echo  $donnees['reference']; ?>]" value="0" />
 
Ce qui donnera dans les sources html générées, pour un produit ayant la référence '123456' :
<input type="text" name="quantite[123456]" value="0" />
 
Si le client a choisit une qté de 10, et en reprenant le code du foreach :
$reference = 123456;
$quantite = 10;
 

n°1576190
hppp
Serveur@home
Posté le 18-06-2007 à 11:47:33  profilanswer
 

ah ok merci beaucoup  :jap:

n°1576245
hppp
Serveur@home
Posté le 18-06-2007 à 13:50:21  profilanswer
 

Re moi, j'ai encore un petit probléme que j'arrive pas a résoudre et je suis dessus depuis se matin.
Je suis en trains de faire une page d'identification et voila le code pour traiter les données récolté par le formulaire:
 

Code :
  1. <?php
  2.    //inclure le fichier
  3.    include('config.php');
  4.    // connection à la BDD
  5.    mysql_connect("$db_host", "$db_user", "$db_pass" ); // Connexion au serveur MySQL
  6.        mysql_select_db("$db" ); // Sélection de la base lcg
  7.    //recuperation des info du id
  8.    $id = mysql_query('SELECT id FROM lcg_pro_clients WHERE id=' . htmlentities($_POST['id']))
  9.    //boucle pour récuperer le mot de passe
  10.    while ($pass_bdd = mysql_fetch_array($id) )
  11.  
  12.    {
  13.    if (mysql_num_rows($pass_bdd['mdp']) == 0)
  14.    {
  15.     header('Location: index.php');
  16. }
  17. elseif (mysql_num_rows($pass_bdd['mdp']) == 1)
  18.    {
  19.    //$_SESSION['id'] = $_POST['id'];
  20.     header('Location: index_accueil.php');
  21.    }
  22.    }
  23.     mysql_close(); 
  24.  
  25. ?>


et j'ai cette erreur: Parse error: parse error in c:\easyphp1-8\www\pro\identification2.php on line 10
mais je n'arrive pas a trouver se que j'ai oublié ou se que j'ai fait comme erreur(s).Merci

n°1576281
jeca
Posté le 18-06-2007 à 14:23:09  profilanswer
 

Il manque le point-virgule à la fin de cette ligne :
  $id = mysql_query('SELECT id FROM lcg_pro_clients WHERE id=' . htmlentities($_POST['id']))
 
Mais normalement, un parse error, ça se trouve seul, en cherchant un peu

n°1576326
hppp
Serveur@home
Posté le 18-06-2007 à 15:16:29  profilanswer
 

jeca a écrit :

Il manque le point-virgule à la fin de cette ligne :
  $id = mysql_query('SELECT id FROM lcg_pro_clients WHERE id=' . htmlentities($_POST['id']))
 
Mais normalement, un parse error, ça se trouve seul, en cherchant un peu


autant pour moi, j'avais pas fait gaffe que je l'avais mi en variable, je pensai que c'étais une requête mysql :(  et comme je me l'etais mi dans la tête! merci encore, c'est comme ça qu'on apprend, je ferai gaffe la prochaine fois.
PS: mais le script ne semble pas marché je sans que je vais y passer du temps


Message édité par hppp le 18-06-2007 à 15:16:59
mood
Publicité
Posté le 18-06-2007 à 15:16:29  profilanswer
 

n°1576359
hppp
Serveur@home
Posté le 18-06-2007 à 16:29:25  profilanswer
 

dsl de vous déranger encore mais j'ai encore un problème sur une boucle:
//boucle pour récuperer le mot de passe
while ($pass_bdd = mysql_fetch_array(htmlentities($_POST['mdp']) )
{ //erreur sur cette ligne
    if(mysql_num_rows($pass_bdd['mdp']) == 0)
     
       {
    header('Location: index.php');  
}
elseif(mysql_num_rows($pass_bdd['mdp']) == 1)
    {  
    header('Location: index_accueil.php');  
}
     
}
 
et ma question est si il faut metre deux point-virgule aprés la variable $pass_bdd? comme ça:
 
 while ($pass_bdd = mysql_fetch_array(htmlentities($_POST['mdp']); )
car il me fait une erreur a la ligne en rouge qui est la même que tous a l'heure a savoir: Parse error: parse error in c:\easyphp1-8\www\pro\identification2.php on line 10 . mais la je ne vois pas ou il manque un ; ou autre. dsl si c'est un truc con mais j'ai pas encore l'habitude de savoir ou metre des ; ou des '' quand il le faut et il ne le faut pas. merci


Message édité par hppp le 18-06-2007 à 16:30:08
n°1576367
jeca
Posté le 18-06-2007 à 16:36:28  profilanswer
 

Quand une erreur est affichée sur une ligne, celle-ci provient souvent de la ligne précédente.
En l'occurence, tu ouvres 3 parenthèses et tu n'en fermes que 2.
Pas besoin d'un forum pour ça.

n°1576368
omega2
Posté le 18-06-2007 à 16:37:09  profilanswer
 

Code :
  1. while ($pass_bdd = mysql_fetch_array(htmlentities($_POST['mdp']) )
  2. { //erreur sur cette ligne


 
On ouvre une parentaise, on ouvre deux parentaises, on ouvre trois parentaires.
On ferme une parentaise, on ferme deux parentaises.
 
Il manquerait pas une fermeture? ;)

n°1576372
hppp
Serveur@home
Posté le 18-06-2007 à 16:42:08  profilanswer
 

a oui dsl, c'est se que je disai encore un truc con!  :(

n°1577067
hppp
Serveur@home
Posté le 20-06-2007 à 08:57:36  profilanswer
 

Salut
 
Je suis retourné sur le formulaire pour esseyer de récuperer les Référence, Désignation, Prix et Quantité mais je n'y arrive pas a ajouter le prix et la Quantité le reste marche trés bien avec:
 

Code :
  1. <tr>
  2.        <td><?php echo $donnees['reference']; ?></td>
  3.        <td><?php echo $donnees['designation']; ?></td>
  4.        <td><?php echo $donnees['prix']; ?></td>
  5.    <td><input type="text" name="quantite[<? echo  $donnees['reference']; ?>]" value="0" size="3" /></td>
  6.    </tr>


et pour récuperre les info avec:
 

Code :
  1. <?php
  2. foreach ($_POST['quantite'] as $reference => $quantite)
  3. {
  4. ?>
  5. <p> <strong>Réference</strong> : <?php echo $reference;?> <strong>Quantité :</strong> <?php echo $quantite; ?>
  6. <?php
  7. }
  8. ?>


J'ai testé ça mais ça ne marche pas:
 

Code :
  1. <tr>
  2.        <td><?php echo $donnees['reference']; ?></td>
  3.        <td><?php echo $donnees['designation']; ?></td>
  4.        <td><?php echo $donnees['prix']; ?></td>
  5.    <td><input type="text" name="quantite[<? echo  $donnees['reference']; ?> <? echo  $donnees['prix']; ?>]" value="0" size="3" /></td>
  6.    </tr>


 

Code :
  1. <?php
  2. foreach ($_POST['quantite'] as $reference => $quantite => $prix )
  3. foreach ($_POST['quantite'] as $prix => $quantite)
  4. {
  5. ?>
  6. <p> <strong>Réference</strong> : <?php echo $reference;?> <strong>Quantité :</strong> <?php echo $quantite; ?> <strong>Prix :</strong> <?php echo $prix; ?>
  7. <?php
  8. }
  9. }
  10. ?>


 
Je suis allé voir la doc de php: http://www.manuelphp.com/php/contr [...] oreach.php mais je n'arrive pas a savoir comment le formuler en php pour cas. Merci


Message édité par hppp le 20-06-2007 à 08:58:31
n°1577723
hppp
Serveur@home
Posté le 21-06-2007 à 16:52:09  profilanswer
 

Bon voila se que je suis arrivé a faire mais qui ne me plais pas:

 

un petit lien: http://blog.homelinux.org/test/formulaire.php
et voila les scripts:
formulaire.php

Code :
  1. <form action="test.php" method="post">
  2.    <center>
  3.    <table>
  4.    <tr>
  5.        <th>Référence</th>
  6.        <th>Désignation</th>
  7.        <th>Prix</th>
  8.    <th>Quantité</th>
  9.    </tr>
  10.    <?php
  11.    //inclure le fichier
  12.    include('config.php');
  13.    // connection à la BDD
  14.    mysql_connect("$host", "$user", "$pass" ); // Connexion au serveur MySQL
  15.        mysql_select_db("$db" ); // Sélection de la base lcg
  16.    //recuperation des info
  17.    $produits = mysql_query("SELECT reference,designation,prix FROM produits" );
  18.    //boucle pour récuperer les info
  19.    while ($donnees = mysql_fetch_array($produits) )
  20.  
  21.    {
  22. ?>
  23. <input type="hidden" name="reference[<? echo  $donnees['designation']; ?>]" value="<?php echo $donnees['reference']; ?>">
  24.    <tr>
  25.        <td><?php echo $donnees['reference']; ?></td>
  26.        <td><?php echo $donnees['designation']; ?></td>
  27.        <td><?php echo $donnees['prix']; ?></td>
  28. <td><input type="text" name="quantite[<? echo  $donnees['reference']; ?>]" value="0" /></td>
  29.    </tr>
  30. <?php
  31. }
  32. mysql_close(); 
  33.    ?>
  34.    </table>
  35.       </center>
  36.    <br/>
  37.    <p>Avant de valider votre Commande merci de bien verifier vos quantité car un retour en arriére n'est pas possible a moins de tous recommencer</p>
  38.    <br/>
  39.    <center><input type="submit" value="Validé votre Commande" /></center>


test.php:

Code :
  1. <?php
  2.     foreach ($_POST['quantite'] as $prix => $quantite)
  3.     {
  4. $prix2 = $prix;
  5. $quantite2 = $quantite;
  6. foreach ($_POST['reference'] as $designation => $reference)
  7.     {
  8. $designation2 = $designation;
  9. $reference2 = $reference;
  10.  ?>
  11. <p>Reference :<?php echo $reference2; ?><br/></p>
  12. <p>Designation :<?php echo $designation2; ?><br/></p>
  13. <p>Prix :<?php echo $prix2; ?><br/></p>
  14. <p>Quantité :<?php echo $quantite2 ?></p>
  15. <?php
  16.     }
  17.     }
  18. ?>


Déjà il fait plusieurs boucles et apres il y aura pas un autre moyen de faire plus propre, merci de votre aide


Message édité par hppp le 21-06-2007 à 16:53:21

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

  Problème pour additionner des variables

 

Sujets relatifs
[J2ME] Problème flux mjpegLe déroulement d'un menu qui passe sous un bloc, probléme!
Probleme avec HashmapProbléme VALUES formulaire
Problème avec le curseurProbleme session combiné aux frames
[HLSL] Problème de positionnementProbleme permission en local
Probléme avec script pour modifier une table Mysql probleme de liste déroulante
Plus de sujets relatifs à : Problème pour additionner des variables


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