Se connecter / S'enregistrer
Votre question

Ma Boucle de Requete SQL ne passe pas

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
11 Octobre 2007 18:58:31

Bonjour tout le monde !
Ca fait deux trois jours que je coince sur un facheux problème qui commence sérieusement à me prendre la tête et c'est pourquoi je viens vous prendre la votre avec ce même probleme : je me sentirai moins seul comme ca !

Bon je me lance : j'utilise de l'ajax pour actualiser une liste déroulante dont le contenu varie en fonction de la première liste. Ainsi une fois les deux listes prêtes, on clique sur un bouton submit : on poste les deux valeurs des variables correspondant aux deux listes (id_categorie et id_fonction) en passant un parametre action=action et ce, sur la même page !
Ainsi, si action=action on effectue la requete SQL où id_categorie=$id_categorie et de meme pour id_fonction.

Simplement, le navigateur ne passe pas dans la boucle...
Vous avez l'exemple ici : www.dream-ressources.com/telechargement/telechargement.php

et le code de la page telechargement.php :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script type="text/javascript">
  5. function sendData(param, page)
  6. {
  7. if(document.all)
  8. {
  9. //Internet Explorer
  10. var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
  11. }
  12. else
  13. {
  14. //Mozilla
  15. var XhrObj = new XMLHttpRequest();
  16. }
  17.  
  18. var content = document.getElementById("contenu");
  19.  
  20. XhrObj.open("POST", page);
  21.  
  22. XhrObj.onreadystatechange = function()
  23. {
  24. if (XhrObj.readyState == 4 && XhrObj.status == 200)
  25. content.innerHTML = XhrObj.responseText ;
  26. }
  27.  
  28. XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  29. XhrObj.send(param);
  30. }
  31.  
  32. </script>
  33. </head>
  34. <body>
  35.  
  36. <?php
  37.  
  38. include('conf.php');
  39.  
  40. if(isset($_POST['id_categorie'])) $id_categorie=$_POST['id_categorie'];
  41. else $id_categorie="";
  42.  
  43. if(isset($_POST['id_fonction'])) $id_fonction=$_POST['id_fonction'];
  44. else $id_fonction="";
  45.  
  46.  
  47. $action = $_GET["action"];
  48.  
  49. // Include DEBUG : echo("=> ".$id_categorie." - ".$id_fonction." - ".$action );
  50.  
  51. // Création d'une variable de test
  52. $i=0;
  53. // Création d'une variable pour conserver la valeur du premier enregistrement
  54. $j=0;
  55.  
  56. // Récupération des données
  57. $req_categorie = "SELECT id,nom_categorie FROM dr_telechargement_categorie ORDER BY nom_categorie;";
  58. $result= mysql_query ($req_categorie) or die ("Récupération des données impossible");
  59. echo "<form method='POST' action='telechargement.php?action=action'>";?> <select size="1" name="id_categorie" OnChange="sendData('id='+this.value,'telechargement_actu_liste.php')" onKeyUp="sendData('id='+this.value,'telechargement_actu_liste.php')">
  60.  
  61. <?php
  62. while ($dt=mysql_fetch_row($result))
  63. {
  64. // Remplissage de la liste déroulante, des données récupérées
  65. echo "<option value=".($dt[0]).">".($dt[1])."</option>";
  66. // On conserve la valeur du premier enregistrement
  67. if ($i==0) { $j=$dt[0]; $i=1; }
  68. }
  69.  
  70. ?>
  71. </select><br><br>
  72.  
  73.  
  74.  
  75. <div id="contenu">
  76. <?php
  77. // Affichage des sous catégories correspondant à la catégorie
  78. echo "<select size='1' name='id_fonction'>";
  79. $rq="SELECT * FROM dr_telechargement_fonction WHERE id_categorie=".$j." ORDER BY nom_fonction;";
  80. $result= mysql_query ($rq) or die ("Recuperation des données impossible");
  81. // On innitialise la variable i
  82. $i=0;
  83. while ($dt=mysql_fetch_row($result))
  84. {
  85. echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option><br>";
  86. }
  87. echo "</select>";
  88. ?>
  89. </div>
  90. </form>
  91.  
  92. <?php
  93. if ($action == "action")
  94. {
  95. echo('<table border="0" cellpadding="0" cellspacing="0" width="520">');
  96.  
  97. $req_sommaire = mysql_query("SELECT * FROM dr_telechargement WHERE id_categorie=\"$id_categorie\" and id_fonction=\"$id_fonction\"");
  98. while($ligne = mysql_fetch_array($req_sommaire))
  99. {
  100. $id = $ligne["id"];
  101. $id_categorie = $ligne["id_categorie"];
  102. $id_fonction = $ligne["id_fonction"];
  103. $jour = $ligne["jour"];
  104. $mois = $ligne["mois"];
  105. $annee = $ligne["annee"];
  106. $heure = $ligne["heure"];
  107. $titre = $ligne["titre"];
  108. $editeur = $ligne["editeur"];
  109. $id_langue = $ligne["id_langue"];
  110. $taille = $ligne["taille"];
  111. $auteur = $ligne["auteur"];
  112. $lien = $ligne["lien"];
  113. $description = $ligne["description"];
  114. $image = $ligne["image"];
  115. $succes = $ligne["succes"];
  116.  
  117. if ($image == "")
  118. {
  119. $image = "defaut.jpg";
  120. }
  121.  
  122. echo('<tr>
  123. <td width="520"><a href="index.php?page=telechargement-fiche&id_telechargement='.$id.'"><strong><font color="#ffc000">'.$titre.'</font></strong><a></td>
  124. </tr>
  125. <tr>
  126. <td width="520">'.$description.' ...</td>
  127. </tr>
  128. <tr>
  129. <td> </td>
  130. </tr>');
  131. }
  132. echo('</table>');
  133. }
  134. ?>


Merci d'avance pour l'attention portée à ce message!

Autres pages sur : boucle requete sql passe

11 Octobre 2007 21:52:25

salut,
en gros, qu'est ce qui ne marche pas?
de quelle boucle tu parles?
vu qu'on a pas ta base, on peut pas trop voir...
si tu veux tester tes requetes, il suffit de mettre un echo avant pour voir la requete exacte qui est passé au sgbd et rajouter un or die pour vérifier le succés de la requête:
exemple:
  1. $sql ="SELECT * FROM dr_telechargement WHERE id_categorie=\"$id_categorie\" and id_fonction=\"$id_fonction\"";
  2. echo "<pre>$sql\n</pre>";
  3. $req_sommaire = mysql_query($sql) or die (mysql_error());

12 Octobre 2007 19:16:17

Merci Coca25, je suis désolé j'avais pas expliqué quelle boucle ne passait pas, mais tu l'as trouvé! En effet il ne veut pas m'afficher le contenu de la boucle ... c'est vrai que j'avais pas pensé a retourner le message d'erreur SQL, mais maitenant que c'est fait l'information est très ... insufisante =/ Je vous renvoie vers la meme page : http://www.dream-ressources.com/telechargement/telechargement.php

Merci pour l'intérêt porté à mon problème!
Contenus similaires
Pas de réponse à votre question ? Demandez !
12 Octobre 2007 19:29:46

1er conseil : rien a voir avec ton "algo" .....

Change l'encodage de tes caractères ......
>
Tr�s bon logiciel d'�dition audio

:) 
12 Octobre 2007 20:56:18

j'ai oublié les "()" après le mysql_error (t'aurais pu compléter :p )
j'ai édité le post d'avant
13 Octobre 2007 19:20:11

Certes, je n'avais en effet pas vu cette absence de () ... Toutes mes excuses. Merci poru ton conseil enlendilm, j'allais m'en occuper une fois tous les "gros problemes" résolus. Merci bien!

Maintenant donc pour en revenir à nos mouton, la requete est vide (Query was empty) Oups maintenat que j'y pense, avec tous ces critères, peut etre qu'aucune réponse ne correspond à ces critères ... Je vais vérifier celà ... Après un bon match et quelques bierres =)
Bonne soirée à tous! et merci pour tous ces conseils =)
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