Bonsoir, je suis débutant en php, je suis entrain de réaliser un moteur de recherche pour un projet personnel.
J'ai un problème sur mon affichage des résultats, que je souhaiterai limiter à 30
résultats par page, malgrès de très nombreux tutos je me retrouve avec un problème sur l'affichage de ma seconde page.
j'arrive bien a obtenir le nombre de résultat de ma requête, la première limite est ok mais quand je clic sur la seconde page je me retrouve avec la totalité de la bdd.
Je ne sais pas si c'est lié à ma requête ou bien peut etre manque t'il une boucle.
voici le code pourriez m'aidez a résoudre mon probleme svp
Code php : 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 <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; echo '</p>'; $premiereEntree=($pageActuelle-1)*$messagesParPage; echo "Le nombre total de page : ".$nombreDePages; echo "<br/>"; echo "La premiere entrée est : ".$premiereEntree; echo "<br/>"; if ($premiereEntree >10); {echo $premiereEntree;} 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()); } 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> '; } } echo "<br/>"; mysql_close(); ?> </body> </html>
Partager