Bonjour , j'avais fais un moteur de recherche sur mon site et il marchais tres bien
seulement les info contenu sur mon site deviennent assez nombreuse et j'aimerai que les résultats de mes recherches soit gérer sur plusieur page si il y en a trop ..
par exemple autoriser uniquement 50 réponse par page ...
pour se faire je me suis inspiré du site et notement du passage sur le livre d'or mais je bloque un peu donc si vous pouviez m'éclairer
voila ce que j'ai fais :
sur la page index (ou se trouve le moteur de recherche) :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <p>Recherche par mot clé : entrer un (ou plusieurs) mot clé(s)</p> <form action="recherche.php" method="post"> <input type="text" size="20" maxlength="20" name="cherche"/> <input class="valider" type="submit" value="Rechercher" /> </form>
sur ma page recherche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 <?php <p><h1>Résultat de la recherche</h1> <?php $cherche = htmlentities ($_POST['cherche']); $sql = "SELECT * FROM liste where Groupe like '%$cherche%' OR Titre like '%$cherche%' OR Format like '%$cherche%' OR Pays like '%$cherche%' OR Etat like '%$cherche%' OR Prix like '%$cherche%' order by Groupe,Titre"; $reponse = mysql_query ($sql); // si aucun disques ne correspond à la recherche if (mysql_num_rows($reponse)==0) { echo "<p><center><strong>Il n'y a aucun disque répondant à votre recherche</center></strong></p>";> ?> <p><center><a href="index.html">Retour</a></center></p> <?php } //si il y a au moin un disque qui correspond à la recherche else { // On met dans une variable le nombre de disques qu'on veut par page $nombreDeDisquesParPage = 50; // On récupère le nombre total de messages correspond au criteres choisi $retour = mysql_query("SELECT COUNT(*) AS nb_disques FROM liste where Groupe like '$cherche%' OR Titre like '%$cherche%' OR Format like '%$cherche%' OR Pays like '%$cherche%' OR Etat like '%$cherche%' OR Prix like '%$cherche%' and Stand='N' and Genre='M'"); $donnees = mysql_fetch_array($retour) or die(mysql_error()); $totalDesDisques = $donnees['nb_disques']; // On calcule le nombre de pages à créer $nombreDePages = ceil($totalDesDisques / $nombreDeDisquesParPage); // Puis on fait une boucle pour écrire les liens vers chacune des pages echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="recherche.php?cherche='.$cherche.'&page=' . $i . '">' . $i . '</a> '; } if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $premierMessageAafficher = ($page - 1) * $nombreDeDisquesParPage; $sql1=$sql. " LIMIT " . $premierMessageAafficher . "," . $nombreDeDisquesParPage; $reponse = mysql_query($sql1) or die(mysql_error()); echo'<table BORDER=1>'; while ($donnees = mysql_fetch_array($reponse)) { echo'<tr> <td width="30px">'.$donnees['Groupe'].'</td> <td width="100%">'.$donnees['Titre'].'</td> <td width="6px">'.$donnees['Format'].'</td> <td width="3px">'.$donnees['Pays'].'</td> <td width="7px">'.$donnees['Etat'].'</td> <td width="4px">'.$donnees['Prix'].'</td> </tr>'; } echo'</table>'; } mysql_close(); ?>
je pense que c'est la partie ou j'affiche les pages qui ne marche pas bien ...
en fait pour le moment j'ai bien la premiere partie de ma recherche qui est afficher mais si par exemple je clique su le lien 1 (qui devrai amener au meme résultat) j'ai une page bleu comme si il trouvais plus rien ...
idem si il y a plusieur page lorsque je clique sur les liens correspondants
Partager