Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
846 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  moteur de recherche: affichage des résultats sur plusieurs pages

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

moteur de recherche: affichage des résultats sur plusieurs pages

n°1528869
nina dj
Posté le 15-03-2007 à 13:09:17  profilanswer
 

bonjour,
je suis en train de créer un moteur de recherche en php qui permettrait de trouver les produits inscrits dans une base de données. J'aimerais limiter le nombre de résultats à 5 par page. Deux boutons font le liens vers la page suivante et la page précédente. Idéalement ces boutons bouclent le résultat (par exemple si on est sur la premiere page et que lon clique sur précédent, on arrive à la dernière page).
Le problème est que lorsque je clique sur ces boutons, mon script ne parvient pas à récupérer la valeur de la variable de recherche... Du coup je tombe sur la page "veuillez entrer un mot pour la recherche".
J'ai essayé de récuperer la variable grace à un champ caché mais ca ne marche pas non plus.... :??:  
Le bout de code:

Code :
  1. require_once ('connection.inc.php');
  2. //include_once ("fonctions.inc.php" );
  3. mysql_select_db($base)or die("erreur sql reception.inc.php ".mysql_error());
  4. // définition de la variable $recherche:
  5. if(isset($_POST['recherche'])){
  6. $recherche=$_POST['recherche'];
  7. }else{
  8. $cache = $_POST['cache'];
  9. $recherche = $cache;
  10. }
  11. echo "recherche: ".$recherche;
  12. echo "<br> cache: ".$cache;
  13. //si la variable recherche est définie
  14. if ($recherche!=''){
  15. //////////////////////////////////////////////////////////////
  16. /*
  17.   $nombre  : Nombre d'enregistrements que l'on veut afficher par page.
  18.   $num_rows : Le nombre total d'enregistrements de la table .
  19.   $limite : Où en sommes-nous dans notre affichage.  
  20.   $page : numéro de la page sur laquelle on est
  21. */
  22. if(!isset($_GET['page']) || $page<2){
  23. $page=1;
  24. }else{
  25. $page=$_GET['page'];
  26. }//fin de la condition pour la page
  27. //nombres d'entrées dans la table:
  28. $NB="SELECT id FROM produits ";
  29. $reqNB = mysql_query($NB);
  30. $num_rows=mysql_num_rows($reqNB);
  31. $nombre = 5;  // on va afficher 5 résultats par page.
  32. //on veut faire boucler le résultat:
  33. if (!isset($limite)||$num_rows-1<$limite){//
  34. $limite = 0; // si on arrive sur la page pour la première fois ou si on a vu toutes les pages on met limite à 0.           
  35. } //fin de la condition de la limite  
  36. /////////////////////////////////////////////////////////////////////
  37. /////////////requette d'affichege des produits://///////////////////
  38. $requette="SELECT * FROM produits WHERE nom LIKE '"."%".$recherche."%"."' OR description LIKE '"."%".$recherche."%"."' OR prix LIKE  '"."%".$recherche."%"."'OR taille LIKE '"."%".$recherche."%"."' ORDER BY nom ASC LIMIT ".$limite.",".$nombre;
  39. //on récupere les réponses que l'on range dans la variable résultat
  40. $resultat = mysql_query($requette);//or die("erreur sql reception.inc.php: ".mysql_error());
  41. //echo "<br>resultat = ".$resultat."<br>requette = ".$requette."<br> nombre!!=".$nombre."<br> limite!!: ".$limite;
  42. $req = mysql_query($select);
  43. //limite next
  44. $limNext = $limite + $nombre;
  45. }//fin de condition de la var $recherche
  46. ?>
  47. page:
  48. <div class="centre">
  49.   <?php
  50.   //AFFICHAGE DU RESULTAT
  51.   //on veut afficher la liste des résultats trouvés par le moteur de recherche
  52.   $Ncur = 0; // n° de la fiche courante
  53.   while ($ligne=mysql_fetch_array($resultat)){
  54.      // une de plus
  55.       $Ncur++;
  56.   ?><!--on créé un lien qui permettra le passage de parametres php par url et dans une autre fenetre  -->
  57.   <div class="lien_detailpdt">
  58.    <a href="detail_produit.php?id=<?php echo $ligne['id'] ?>" target="_blank"><?php echo $ligne['nom']?></a>
  59.   </div><?php }//on sort de la boucle while
  60.    ?>
  61.   <!-- on créé un champ caché qui sert à récuperer la variable recherche -->
  62.   <form name="cache" method="post" action="<?php $PHP_SELF ?>" >
  63.   <input type="texte" id="cache" value="<?php echo $recherche ?>" />
  64.   </form>
  65.   <!-- fin cu formulaire -->
  66.  </div>
  67. <div class="arrow"><?php if($_GET['page'] != 1){//a modifier
  68.       if($page*$nombre_resultats < $num_rows){//a modifier
  69.        $debut-=5;
  70.        $nombre_resultats-=5;
  71.         echo '<a href="reception.inc?limite='.$limPrev.'"><img src="img/fleche_up.gif.gif" alt="passer aux articles suivants" border="0px" /></a>';
  72.          }
  73.         }?>
  74.    </div><!--vers page précédente -->
  75.    <div id="middlearrow"></div>
  76.    <div class="arrow">
  77.     <?php if($_GET['page'] != 1){
  78.       if($page*$nombre_resultats < $num_rows){
  79.        $debut+=5;
  80.        $nombre_resultats+=5;
  81.         echo '<a href="reception.inc?limite='.$limNext.'"><img src="img/fleche_up.gif.gif" alt="passer aux articles suivants" border="0px" /></a>';
  82.          }
  83.         }?>
  84.    </div><!--vers page suivante -->


 
 
Merci d'avance à ceux qui m'aideront.


Message édité par nina dj le 15-03-2007 à 14:03:17
mood
Publicité
Posté le 15-03-2007 à 13:09:17  profilanswer
 

n°1528928
rufo
Pas me confondre avec Lycos!
Posté le 15-03-2007 à 14:40:17  profilanswer
 

dans tes liens suivant et précédent, faut remettre la variable qui contient le critère de recherche + le n° de page à afficher (-1 et +1 par rapport à la page courante)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  moteur de recherche: affichage des résultats sur plusieurs pages

 

Sujets relatifs
[Win32] Ouverture de plusieurs fichiersRechercher fichier puis affichage d´une partie du contenu
moteur audioEst-il possible de faire une recherche dans un object Element
Afficher les resultat de plusieurs requete provenant d'une bouclerecherche arborescence dans flash !
[PHP Mysql] Champ de recherchedifférence d'affichage entre firefox et IE sur mon site...
[Recherche outil PHP] A propos d'annuaire internetRecherche d'images pour boutons
Plus de sujets relatifs à : moteur de recherche: affichage des résultats sur plusieurs pages


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR