[PHP] pagination des résultats engin recherch

Fermé
dawcore Messages postés 2 Date d'inscription dimanche 17 juin 2007 Statut Membre Dernière intervention 28 juin 2007 - 28 juin 2007 à 21:32
yozine Messages postés 11 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 2 juillet 2007 - 28 juin 2007 à 22:33
Bon voilà je vous explique mon problème,
sur ma page d'accueil j'ai un formulaire qui permet de rechercher dans une Base de donnée selon certains critère dans un menu déroulant (<select name="categories"><option>...</option>). Lorsque l'utilisateur appuie sur le bouton rechercher il est rediriger sur une page nommée rechercher.php ou j'affiche les résultat.
sur cette page il y à ce code:
   <?php 
	  if(!isset($_GET['page']))
	  {
	     $page = "1";
	  }
	   else
	   {
	     $page = $_GET['page'];
	   }
	   
	  $max_resultat = "5";
	  
	  $de       = (($page * $max_resultat) - $max_resultat);
	  $sql4     = "SELECT * FROM restaurants WHERE categorie LIKE '".$_POST["categories"]."' LIMIT '".$de."','".$max_resultat."' ";
	  $requete4 = mysql_query($sql4);
	  $couleur  = "1";
	  
	  echo "SELECT * FROM restaurants WHERE categorie LIKE '".$_POST["categories"]."' LIMIT '".$de."','".$max_resultat."' ";
	 //affichage des resultats 
      
	  while($resultat=mysql_fetch_array($requete4))
	  {
	     echo $resultat['nom'];
	  }
	  
	  $resultat_total = mysql_result(mysql_query("SELECT COUNT(*) AS total FROM restaurants WHERE categorie LIKE '".$_POST["categories"]."'"),0);
	  $pages_total    = ceil($resultat_total / $max_resultat);
	  echo'<div id="pagination"><span id="pagination_resultats">R&eacute;sultats</span>';
	  
	 //affichage du precedent
	  if($page > 1)
	  {
	    $precedent = ($page - 1);
	    echo'<span class="btn-precedent"><a href="rechercher.php?page='.$precedent.'" title="Revenir d&#39;une page">pr&#233;c&#233;dent</a></span>';

	  }
	  
	 echo '<p style="text-align: center;">';
	 //affichage des pages
	  for($i = 1; $i <= $pages_total; $i++)
	  {
	     if(($page) == $i)
		 {
		    echo $i;
		 }
		  else
		  {
		     echo'<a href="rechercher.php?page='.$i.'" title="">'.$i.'</a>';
		  }
	  }
      echo'</p>';
	  
	 //affichage du suivant
	  if($page < $pages_total)
	  {
	    $suivant = ($page + 1);
	    echo'<span class="btn-suivant"><a href="rechercher.php?page='.$suivant.'" title="Avancer d&#39;une page">suivant</a></span>';
	  }	
	  echo'<!-- #pagination -->
		   </div>'; 
	   
   ?>

Le problème c'est qu'il m'affiche constamment l'erreur suivante:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\dossier\rechercher.php on line 91
On dirais que le problème ce situe au niveau du while et de la requête....
Merci pour votre aide !
A voir également:

1 réponse

yozine Messages postés 11 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 2 juillet 2007 2
28 juin 2007 à 22:33
salut ouep, visiblement ta requete SQL n'est pas bonne.

generalement ca vient d'une variable PHP qui est mal passée. Le plus souvent la valeur de la variable dans la requete est nulle, ce qui donne une requete qui passe pas.

En fait il faut voir au niveau des var POST ou GET si elles sont bien toutes passées de page en page.
1