Tom's Guide > Forum > Programmation > Ma Boucle de Requete SQL ne passe pas

Ma Boucle de Requete SQL ne passe pas

Forum Programmation : Ma Boucle de Requete SQL ne passe pas

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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/telec [...] gement.php

et le code de la page telechargement.php :

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



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


Message édité par cameleon1st le 11-10-2007 à 19:05:09
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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:

Code :
  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());



Message édité par coca25 le 12-10-2007 à 20:56:41
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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/te [...] gement.php

Merci pour l'intérêt porté à mon problème!

Répondre à cameleon1st

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

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

:)

Répondre à elendilm

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


Message édité par coca25 le 13-10-2007 à 19:45:19
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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 =)

Répondre à cameleon1st
Tom's Guide > Forum > Programmation > Ma Boucle de Requete SQL ne passe pas
Aller à :

Il y a 2290 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens