Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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 !
Lassé par la pub ? Créez un compte

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. ?>

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>

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde