php bdd passage des requetes

php bdd passage des requetes - PHP - Programmation

Marsh Posté le 23-08-2007 à 23:38:30    

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

Reply

Marsh Posté le 23-08-2007 à 23:38:30   

Reply

Marsh Posté le 23-08-2007 à 23:59:20    

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})/
Reply

Marsh Posté le 24-08-2007 à 00:32:08    

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
Reply

Marsh Posté le 24-08-2007 à 00:52:10    

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})/
Reply

Marsh Posté le 24-08-2007 à 13:04:43    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed