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

  FORUM HardWare.fr
  Programmation
  PHP

  php bdd passage des requetes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php bdd passage des requetes

n°1603311
marquito
Posté le 23-08-2007 à 23:38:30  profilanswer
 

Bonsoir,
 
je viens vous voir pour une aide qui doit être simple et basique pour vous moi j'avous je suis un peu nul :?
 
voila j'ai fais un BDD avec 4 colonnes
id / restauration  / produits / prix
1 / Bar              / café    /1.20
2 /Bar               /Pression/2.20
ect......
 
j'ai une page php ou j'aimerai afficher les prix alors j'ai suivi quel exemple comme celui ci :
 
<?php
// on se connecte à notre base  
$base = mysql_connect ('localhost', '....', '.......');  
mysql_select_db ('........', $base) ;  
?>
<?php
// lancement de la requete  
$sql = 'SELECT prix FROM matable WHERE restauration = "Bar"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)  
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
 // on recupere le resultat sous forme d'un tableau  
$data = mysql_fetch_array($req);  
 // on libère l'espace mémoire alloué pour cette interrogation de la base  
mysql_free_result ($req);  
mysql_close ();  
 ?>
<div id='ligne_carte_produits'><i>Café</i></div>
<div id='ligne_carte_prix'><?php echo $data['prix']; ?>€</div>
 
Bon super ça affiche bien le prix du café
mais comment afficher les autres prix ?????
<div id='ligne_carte_produits'><i>Pression</i></div>
<div id='ligne_carte_prix'>2.20€</div>????? comment faire ???
 
Merci pour votre précieuse aide

mood
Publicité
Posté le 23-08-2007 à 23:38:30  profilanswer
 

n°1603320
dwogsi
Défaillance cérébrale...
Posté le 23-08-2007 à 23:59:20  profilanswer
 

Là, ce que tu as, ça ne fonctionne que dans le cas ou tu n'as qu'une seule ligne dans ta table, ou si tu souhaites afficher qu'une seule ligne.

 

Pour afficher toutes les données, il faut que tu mette en place une boucle à l'aide de while.

 

Donc le début de ton code est bon jusqu'à :

Code :
  1. $data = mysql_fetch_array($req);
 

Il faut modifier les lignes qui suivent :

Code :
  1. while($data = mysql_fetch_array($req)}
  2. {
  3.   // On va boucler ici tant qu'il y aura des résultats dans la table
  4.   // chaque passage dans la boucle correspondra à une ligne dans la table
  5.   // Tu peux donc faire quelque chose comme ça :
  6.   echo '<p>Prix :',$data['prix'],'</p>';
  7. }
 

et ensuite continuer ton code comme tu l'avais fait à l'exception de la partie html. Ce qui nous donne au final :

 
Code :
  1. <?php
  2.   // on se connecte à notre base 
  3.   $base = mysql_connect ('localhost', '....', '.......'); 
  4.   mysql_select_db ('........', $base) ;
  5.   // lancement de la requete 
  6.   $sql = 'SELECT prix FROM matable WHERE restauration = "Bar"';
  7.   // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) 
  8.   $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  9.   while($data = mysql_fetch_array($req)
  10.   {
  11.     // On va boucler ici tant qu'il y aura des résultat dans la table
  12.     // chaque passage dans la boucle correspondra à une ligne dans la table
  13.     // Tu peux donc faire quelque chose comme ça :
  14.     echo '<p>Prix :',$data['prix'],'</p>';à
  15.   }
  16.   // on libère l'espace mémoire alloué pour cette interrogation de la base 
  17.   mysql_free_result ($req);
  18.   // Fermeture de la connexion au sgbd
  19.   mysql_close (); 
  20. ?>
 

Normalement ça devrait fonctionner, à moins que j'ai fait une petite erreur quelque part, ce qui n'est pas improbable étant donné que c'est fait de tête et non testé.

 

En espérant t'avoir aidé!

 

PS : Il existe dans balises propres au forum permettant d'afficher du code correctement formatté et facillitant la lecture.


Message édité par dwogsi le 24-08-2007 à 00:50:25

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1603326
marquito
Posté le 24-08-2007 à 00:32:08  profilanswer
 

super merci et pas mal de tête juste une faute de frappe ($req)} le crochet a la place de la parenthese ;-)
mais tu peux me dire comment je peux mettre chaque prix a leur place ?

Code :
  1. <div id='carte_bar_produits'>
  2. <div id='ligne_carte_produits'><i>Café</i></div>
  3. <div id='ligne_carte_produits'><i>Pression</i></div>
  4. <div id='ligne_carte_produits'><i>Jus de Fruit</i></div>
  5. <div id='ligne_carte_produits'><i>Pastis</i></div>
  6. <div id='ligne_carte_produits'><i>Whisky (baby)</i></div>
  7. </div>
  8. <div id='carte_bar_prix'>
  9. <div id='ligne_carte_prix'></div>
  10. <div id='ligne_carte_prix'>2,20€</div>
  11. <div id='ligne_carte_prix'>2,20€</div>
  12. <div id='ligne_carte_prix'>2,20€</div>
  13. <div id='ligne_carte_prix'>2,70€</div>
  14. </div>


la je nage


Message édité par marquito le 24-08-2007 à 00:34:34
n°1603331
dwogsi
Défaillance cérébrale...
Posté le 24-08-2007 à 00:52:10  profilanswer
 

Trop de div tu e e div, parait-il.
Enfin c'est juste pour dire qu'il ne faut pas croire que c'est un élément universel!
 
Ya plein d'autres balises pour la mise en page/forme.
Dans ton cas, je préconnise le tableau.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1603542
marquito
Posté le 24-08-2007 à 13:04:43  profilanswer
 

Bonjour je reviens vous voir je suis dans cosmos !
si je fais ça

Code :
  1. <?php
  2. // on se connecte à notre base   
  3. $base = mysql_connect ('localhost', '.......', '...........'); 
  4. mysql_select_db ('................', $base) ; 
  5. // lancement de la requete   
  6. $sql = 'SELECT produits,prix FROM mabase WHERE restauration = "Bar"';
  7. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
  8. // on recupere le resultat sous forme d'un tableau   
  9. while ($data = mysql_fetch_array($req)) {
  10. ?>
  11. <div id='ligne_carte_produits'><i><?php echo $data['produits']; ?></i></div>
  12. <div id='ligne_carte_prix'><?php echo $data['prix']; ?>€</div>
  13. <?php
  14. }
  15. // on libère l'espace mémoire alloué pour cette interrogation de la base   
  16. mysql_free_result ($req); 
  17. mysql_close ();
  18. ?>


 
je ne peux pas recopier ce code pour continuer avec snack ?
 

Code :
  1. // lancement de la requete   
  2. $sql = 'SELECT produits,prix FROM mabase WHERE restauration = "Snack"';
  3. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
  4. // on recupere le resultat sous forme d'un tableau   
  5. while ($data = mysql_fetch_array($req)) {
  6. ?>
  7. <div id='ligne_carte_produits'><i><?php echo $data['produits']; ?></i></div>
  8. <div id='ligne_carte_prix'><?php echo $data['prix']; ?>€</div>


 
Vous voyez je suis a 15 milles
 
Merci pour votre aide


Message édité par marquito le 24-08-2007 à 13:11:10

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

  php bdd passage des requetes

 

Sujets relatifs
Paralléliser des requêtes DNSPassage de variables d'un module vers un userform
ActivePerl et passage de paramètres aux dllProblèmes avec plusieures requêtes...
Runtime.exec(), probleme de passage d'argumentsProbleme repaint et passage de variables
Extraction de plusieurs requêtes SQL Server sous Word ou Excelpassage de variables entre flash et php
[C --> C++] passage par référencepassage de TStream de Delphi à C++
Plus de sujets relatifs à : php bdd passage des requetes


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