apes Posté 16 Janvier 2009 Partager Posté 16 Janvier 2009 Bonjour, je suis débutant php / mysql, je tente de faire un moteur de recherche sur plusieurs mots clés. sur une seule page mes résultats ne me génère pas de problème par contre en multipaging la ça se corse, en gros je fais une boucle for dans laquelle je fais ma recherche j'obtiens bien : le nombre de resultat le nombre de pages a afficher la première page est bonne mais le lien sur la seconde page me renvoi la totalité de la bdd, je pense que le problème viens du fait que j'ecrase la requete à chaque boucle éffectuée mais je ne parviens pas à modifier mon code pour les conservées, j'ai tenté de faire un tableau de requête ainsi en faisant une boucle for executer une à une les requete mais la je crois que je suis parti en sucette a mon avis il y a beaucoup plus simple pourriez vous m'aider je mais le code de mon programme ci dessous. <html><head><title>mon site</title></head><body><center><H1>BIENVENUE SUR LE SITE CRD SALLE 104</H1></center> <BR></BR><BR></BR><BR></BR><BR></BR><form method="post" action="page.php"><center>Recherche : <input type="text" name="Valeur" size="50"><input type="submit" value="OK"><BR></center></form><?php$messagesParPage=10;mysql_connect("localhost","root"); mysql_select_db("test");$mot = isset ( $_POST['Valeur'] ) ? $_POST['Valeur'] : '' ; echo "<br />";$keywords = preg_split("/[\s,]+/", $mot);$nbrtbl=sizeof($keywords);echo "Vous avez tapé ".$nbrtbl." Mots clés";echo "<br/>";for ($j=0;$j<$nbrtbl;$j++) {$reponse = mysql_query("SELECT * FROM `rapport`WHERE (idRapport LIKE '%". $keywords[$j]."%' OR NomEntreprise LIKE '%". $keywords[$j]."%'OR Formation LIKE '%". $keywords[$j]."%' OR Theme LIKE '%". $keywords[$j]."%')")or die (mysql_error());$m=$j+1;echo "le mot clé n° ".$m." est : ".$keywords[$j];echo "<br/>";}$total = mysql_num_rows($reponse);echo "il y a : ".$total." résultats.";echo "<br/>";mysql_free_result($reponse);echo "<br/>";$nombreDePages=ceil($total/$messagesParPage);if(isset($_GET['page'])) {$pageActuelle=intval($_GET['page']); if($pageActuelle>$nombreDePages) {$pageActuelle=$nombreDePages;}}else $pageActuelle=1;echo "La page actuelle est : ".$pageActuelle;$premiereEntree=($pageActuelle-1)*$messagesParPage;echo "Le nombre total de page : ".$nombreDePages;echo "<br/>";echo "La premiere entrée est : ".$premiereEntree;echo "<br/>";for ($j=0;$j<$nbrtbl;$j++) {$reponse = mysql_query("SELECT * FROM `rapport`WHERE (idRapport LIKE '%". $keywords[$j]."%' OR NomEntreprise LIKE '%". $keywords[$j]."%'OR Formation LIKE '%". $keywords[$j]."%' OR Theme LIKE '%". $keywords[$j]."%')ORDER BY 'NomEntreprise' ASC LIMIT $premiereEntree,$messagesParPage ")or die (mysql_error());echo "test valeur".$reponse;}while($donnees = mysql_fetch_array($reponse)) { echo "<table>"; echo "<td>".$donnees['idRapport']."</td>"; echo "<td>".$donnees['NomEntreprise']."</td>"; echo "<td>".$donnees['Theme']."</td>"; echo "<td>".$donnees['Formation']."</td>"; echo "</table>"; }echo '<p align="center">Page : '; for($i=1; $i<=$nombreDePages; $i++){ if($i==$pageActuelle) {echo ' (( '.$i.' )) '; } else { echo ' <a href="page.php?page='.$i.'">'.$i.'</a> '; }} mysql_close();?></body></html> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant