Votre question

[Resolue][PHP] requete SQL qui ne fonctionne pas

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
9 Décembre 2010 21:23:49

Bonjour, voila je fais appel à vous car je n'arrive pas à faire fonctionner une de mes requêtes SQL et impossible de savoir pourquoi.. Je vous remercie de m'aider :( 

  1. <?php
  2. $rg=2;
  3.  
  4. $sql=mysql_query("SELECT membre_pseudo, membre_email, membre_adresse, membre_tel, membre_nom, membre_prenom FROM membres WHERE membre_rg='".$rg."' ORDER BY membre_id LIMIT 0, 15");
  5.  
  6. $data=mysql_fetch_array($sql);
  7.  
  8. mysql_close();
  9.  
  10. $membre=$data['membre_pseudo'];
  11.  
  12. echo 'membre :'.$membre.'<br />';
  13.  
  14. $sql2=mysql_query('SELECT membre_pseudo, membre_offre, membre_domaine FROM domaine WHERE membre_pseudo="'.$membre.'" ORDER BY membre_id LIMIT 0,15');
  15.  
  16. $data2=mysql_fetch_array($sql2);
  17.  
  18. $domaine=$data2['membre_domaine'];
  19.  
  20. echo 'domaine :'.$domaine.'<br />';
  21. ?>




Merci d'avance !

Autres pages sur : resolue php requete sql fonctionne

9 Décembre 2010 21:37:55

salut,

c'est où que tu fait la connection mysql ? je ne vois pas de mysql_connect()
m
0
l
9 Décembre 2010 21:38:52

Je le fait dans un fichier a par qui est inclue au début de la page ;) 
m
0
l
Contenus similaires
9 Décembre 2010 21:49:36

dans ce cas je ne vois pas l'include ;) 

mais bon on va dire que c'est fait

  1. <?php
  2. include("connection.php");
  3. $rg=2;
  4.  
  5. $sql=mysql_query("SELECT membre_pseudo, membre_email, membre_adresse, membre_tel, membre_nom, membre_prenom FROM membres WHERE membre_rg='".$rg."' ORDER BY membre_id LIMIT 0, 15" );
  6.  
  7. while ($data=mysql_fetch_object($sql)) { echo 'membre :'.$data->membre_pseudo.'<br />'; }
  8. ?>
m
0
l
9 Décembre 2010 21:52:52

  1. mysql_fetch_object($sql)



Je ne comprend pas pourquoi c'est ca :( 
m
0
l
9 Décembre 2010 22:01:58

J'ai opté pour un update de ma table principale pour pouvoir afficher correctement mes données seulement je n'arrive pas a comprendre pourquoi cela me fait une boucle infini...

admin.php
  1. <?php
  2. session_start();
  3. $titre="Commande passée";
  4. include ("./includes/debut.php");
  5. include ("./includes/menu.php");
  6. include ("./includes/identifiants.php");
  7.  
  8.  
  9. $rg=2;
  10. $sql=mysql_query("SELECT membre_id, membre_pseudo, membre_email, membre_adresse, membre_tel, membre_nom, membre_prenom, membre_offre, membre_domaine FROM membres WHERE membre_rg='".$rg."' ORDER BY membre_id LIMIT 0, 15");
  11. $data=mysql_fetch_array($sql);
  12. mysql_close();
  13. ?><table>
  14. <tr>
  15. <th class="membre"><strong>Membre</strong></th>
  16. <th class="nom"><strong>Nom</strong></th>
  17. <th class="prénom"><strong>Prénom</strong></th>
  18. <th class="adresse"><strong>Adresse</strong></th>
  19. <th class="telephone"><strong>Téléphone</strong></th>
  20. <th class="offre"><strong>Offre</strong></th>
  21. <th class="domaine"><strong>Domaine</strong></th>
  22. </tr>
  23. <?php
  24.  
  25. while ($data)
  26. {
  27.  
  28. echo'<tr><td><strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong></td>';
  29. echo'<td>'.stripslashes(htmlspecialchars($data['membre_nom'])).'
  30. <br /><hr />'.stripslashes(htmlspecialchars($data['membre_prenom'])).'
  31. <br /><hr />'.stripslashes(htmlspecialchars($data['membre_adresse'])).'
  32. <br /><hr />'.stripslashes(htmlspecialchars($data['membre_tel'])).'
  33. <br /><hr />'.stripslashes(htmlspecialchars($data['membre_offre'])).'
  34. <br /><hr />'.stripslashes(htmlspecialchars($data['membre_domaine'])).'</td></tr>';
  35. }
  36. ?>
  37. </table>
  38. </div>
  39. </body>
  40. </html>
m
0
l
9 Décembre 2010 22:05:31

parce que $data peut être null, mais pas false
m
0
l
9 Décembre 2010 22:08:18

Je comprends vraiment pas comment faire dans ce cas...
m
0
l
9 Décembre 2010 22:11:50

mysql_fetch_object()
m
0
l
10 Décembre 2010 06:55:37

Quand tu dis que $data peut être null mais pas false, cette fonction permet quoi dans ce cas ? J'aimerais comprend le fonctionnement s'il te plait : /
m
0
l
a c 145 L Programmation
10 Décembre 2010 09:12:22

En fait, tu affectes $data une fois, et ensuite tu dis "tant que $data existe" comme condition pour boucler. Or tu ne supprimes jamais $data, donc tu boucles à l'infini.

Il faut supprimer la ligne 11 (première affectation inutile) et remplacer la 25 par:
  1. while ($data=mysql_fetch_array($sql)) {

Et là, tu boucleras jusqu'au dernier enregistrement retourné par ta requête. S'il n'y a plus d'enregistrement, $data ne sera plus vrai.
m
0
l
10 Décembre 2010 15:58:29

Merci bien ! Mon problème est maintenant résolue!
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS