Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec une clause WHERE

supplied argument is not a valid MySQL

Sujet résolu
    8 octobre 2010 à 18:08:38

    Bonjour
    Petit souci avec un code.
    Je m'explique : j'ai un tas de news et je propose à l'internaute de les afficher par thème. Il peut choisir son thème dans une liste déroulante. Puis appuie sur un bouton submit qui transmet à une autre page avec la méthode POST.
    Je récupère son choix et, selon ce choix, demande à la base de données de m'envoyer les news correspondantes au thème choisi.
    Je précise que la colonne sur laquelle je fais le WHERE s'appelle theme...
    Je me retrouve avec une erreur du type Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/lesdeserts/www/news/trier_actu.php on line 139
    Pourtant je ne vois pas ce qui cloche avec ma requête.
    Si quelqu'un pouvait me donner un coup de pouce..
    Merci beaucoup

    Voici le code XHTML
    <div id="trier">
            
                        <form action="trier_actu.php" method="post">
                        <p class="trier"><label for="theme"> Trier les articles par thème </label> </p>
                        <select name="theme" id="theme">
                        <option value="ecologie"> Ecologie </option>
                        <option value="cata"> catastrophe naturelle</option>
                    <option value="sciences">Sciences </option>
                        <option value="tourisme"> Tourisme </option>
                        <option value="autres"> Autres</option><br/><br/>
                        </select> <br/>
                        <br/><input type="submit" name="submit" value="Trier"/>
                        </form>
                        
                        </div>
    


    Et le code PHP dans la page de traitement
    <?php
    mysql_connect("sql5", "yyyy", "xxx");
    mysql_select_db("lesdeserts");
    
    if(isset($_POST['theme'])) {
              $theme=$_POST['theme']; 
    	         if($theme==ecologie) { // Si l'internaute a choisi l'écologie pour thème
    			$affichageecologie=mysql_query("SELECT * FROM actu WHERE theme='Ecologie' ORDER BY id DESC LIMIT 0,10"); 
    											
    				while($donnees = mysql_fetch_array($affichageecologie)){
    					
    						
    		                     echo '<h3 class="news">'.stripslashes($donnees['titre']).'</h3>'; 
    					
    				     echo '<p class="date"> Publié le '.date('d/m/Y à H:h', $donnees['timestamp']).'</p>';
    				     echo '<p> '.nl2br(stripslashes($donnees['contenu'])).'</p>'; 
    				     echo '<p> Source : <a href="'.$donnees['lien_source'].'"> '.stripslashes($donnees['source']).'</a> </p>'; 
    				}
    											
    		}
    
    		if($theme==cata) {	// Si l'internaute a choisi les catastrophes naturelles pour thème
    			$affichage_Cata=mysql_query("SELECT * FROM actu WHERE theme='Catastrophe naturelle' ORDER BY id DESC LIMIT 0,10"); 
    											
    				while ($donnees = mysql_fetch_array($affichage_Cata)){
    					
    						
    					echo '<h3 class="news">'.stripslashes($donnees['titre']).'</h3>'; 
    					
    					echo '<p class="date"> Publié le '.date('d/m/Y à H:h', $donnees['timestamp']).'</p>';
    					echo '<p> '.nl2br(stripslashes($donnees['contenu'])).'</p>'; 
    					echo '<p> Source : <a href="'.$donnees['lien_source'].'"> '.stripslashes($donnees['source']).'</a> </p>'; 
    						
    				}
    											
    		}
    								
    		if($theme==sciences) { // Si l'internaute a choisi les sciences pour thème
    			$affichage_Sciences=mysql_query("SELECT * FROM actu WHERE theme=Sciences ORDER BY id DESC LIMIT 0,10"); 
    											
    				while ($donnees = mysql_fetch_array($affichage_Sciences)){
    					
    						
    						echo '<h3 class="news">'.stripslashes($donnees['titre']).'</h3>'; 
    					
    						echo '<p class="date"> Publié le '.date('d/m/Y à H:h', $donnees['timestamp']).'</p>';
    						echo '<p> '.nl2br(stripslashes($donnees['contenu'])).'</p>'; 
    						echo '<p> Source : <a href="'.$donnees['lien_source'].'">               .'stripslashes($donnees['source']).'</a> </p>'; 
    						
    				}
    											
    		}
    								
    		if($theme==tourisme) { // Si l'internaute a choisi les sciences pour thème
    			$affichage_Tourisme=mysql_query("SELECT * FROM actu WHERE theme='Tourisme' ORDER BY id DESC LIMIT 0,10"); 
    											
    				while ($donnees = mysql_fetch_array($affichage_Tourisme)){
    					
    						
    					echo '<h3 class="news">'.stripslashes($donnees['titre']).'</h3>'; 
    					
    					echo '<p class="date"> Publié le '.date('d/m/Y à H:h', $donnees['timestamp']).'</p>';
    					echo '<p> '.nl2br(stripslashes($donnees['contenu'])).'</p>'; 
    					echo '<p> Source : <a href="'.$donnees['lien_source'].'"> '.stripslashes($donnees['source']).'</a> </p>'; 
    						
    				}
    											
    		}
    								
    		if($theme=='autres') { // Si l'internaute a choisi les sciences pour thème
    		           $affichage_Autres=mysql_query("SELECT * FROM actu WHERE theme='Archéologie'
    			   OR(theme='Désertification')
    			   OR(theme='Economie')
    			   OR(theme='Immigration')
    			   OR(theme='Culture')
    			   OR(theme='Documentaire')
    			   OR(theme='Climat')
    			   OR(theme='Actualité')
    		           OR(theme='Energie')
    			    OR(theme='Humanitaire') ORDER BY id DESC LIMIT 0,10"); 
    											
    					while ($donnees = mysql_fetch_array($affichage_Autres)){
    					
    						
    						echo '<h3 class="news">'.stripslashes($donnees['titre']).'</h3>'; 
    					
    						echo '<p class="date"> Publié le '.date('d/m/Y à H:h', $donnees['timestamp']).'</p>';
    						echo '<p> '.nl2br(stripslashes($donnees['contenu'])).'</p>'; 
    						echo '<p> Source : <a href="'.$donnees['lien_source'].'"> '.stripslashes($donnees['source']).'</a> </p>'; 
    						
    					}
    											
    		}
    						
    }			
     
    					
    						mysql_close();
    				?>
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2010 à 18:47:46

      Y'a plein d'erreurs.

      Dans les IF, tu n'entoures pas la chaine de comparaison avec des quotes ou des guillemets.
      Ligne 39, même erreur mais dans la requête.
      Lignes 72-80, OR doit être entourés d'espace à mon avis.
      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2010 à 18:52:23

        Merci pour ta réponse
        J'ai corrigé mes erreurs mais ça ne fonctionne toujours pas.
        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2010 à 19:01:39

          OK, de toute façon, cette erreur ça veut dire que ta requête a échoué et qu'elle n'a envoyé aucun enregistrement. Donc maintenant, le truc c'est d'afficher l'erreur et la requête qui l'a produite et tu verras plus clair.
          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2010 à 19:02:26

            Faut que je fasse un or die quoi???

            SUJET résolu : j'ai fait un or die et j'avais une erreur dans le LIMIT
            Merci bien
            • Partager sur Facebook
            • Partager sur Twitter

            Problème avec une clause WHERE

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown