Bonjour à tous,
Alors voilà, je suis débutante en php et je me frotte à un projet pour lequel je suis coincée à plusieurs endroits.
Le premier, c'est la pagination.
Le projet est un annuaire, donc un genre de moteur de recherche dans une BDD.
La recherche fonctionne bien. Mais pas la pagination.
Lorsque la pagination s'affiche, j'ai en fait tous les numéros de pages de toute la BDD (soit 4000 et quelques pages) et mes résultats s'affichent les uns en dessous des autres... (les pages sont looonnngues lol).
J'ai l'impression que ma requête de base (ma recherche) n'est pas prise en compte dans cette pagination et quoi que je fasse, et je n'y arrive pas....
Voici le code de ma page entière :
Si jamais vous trouvez le bug, pouvez vous m'expliquer sa résolution "pas à pas" ?
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
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Infirmières Libérales (cabinets et soins à domicile)</title> <?php if (isset($metaRefresh)) echo $metaRefresh;?> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta http-equiv="Content-Language" content="fr" /> <link rel="stylesheet" type="text/css" href="../css/style.css" /> </head> <body> <?php if(isset($_POST['requete']) && $_POST['requete'] != NULL) { mysql_connect('localhost','root','root'); mysql_select_db('annuaire-infirmieres'); //pagination $sql = "SELECT COUNT(id) as nbInf FROM infirmieres"; $req = mysql_query($sql) or die(mysql_error()); $data = mysql_fetch_assoc($req); print_r($data); $nbInf = $data['nbInf']; $parPage = 5; $nbPage = ceil($nbInf / $parPage); if(isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$nbPage) { $pageCourante = $_GET['p']; } else { $pageCourante = 1; } $sql = "SELECT * FROM infirmieres WHERE code_postal LIKE '%$requete%' ORDER BY id DESC LIMIT ". (($pageCourante-1)*$parPage). ",$parPage"; $req = mysql_query($sql) or die(mysql_error()); while ($data=mysql_fetch_assoc(sreq)){ echo "<h1>{$data['nom']}</h1>"; echo $data{'nom'}; echo "</hr>"; } for($i=1;$i<$nbPage;$i++) { if($i==$pageCourante) { echo " $i /"; } else { echo "<a href=\"recherche/rechercher_ville.php?p=$i\">$i</a> "; } } //fin pagination //requête sur le champ ville du formulaire $requete = htmlspecialchars($_POST['requete']); $query = mysql_query("SELECT * FROM infirmieres WHERE nom LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error()); $nb_resultats = mysql_num_rows($query); if($nb_resultats != 0) { ?> <!--affichage des résultats--> <h3>Résultats de votre recherche.</h3> <h2>Nous avons trouvé <? echo $nb_resultats; if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; } ?> dans votre commmune :<br/> <br/></h2> <? while($donnees = mysql_fetch_array($query)) { ?> <br/><div id="affichage"> <? echo $donnees['nom']?><br/> <? echo $donnees['adresse']?><br/> <? echo $donnees['code_postal']?> <? echo $donnees['ville']?><br/> <input class="bouton-inscription-affichernum" type="submit" value="Afficher le numéro"> <input class="bouton-inscription-affichernum" type="submit" value="Afficher le plan"> <br/><br/> </div> <? } ?><br/> <br/> <a href="rechercher_nom.php"> <input class="bouton-inscription-recherche" type="button" value="FAIRE UNE NOUVELLE RECHERCHE"> </a> <? } else { ?> <h3>Pas de résultats</h3> <p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="rechercher_nom.php">Réessayez</a> avec autre chose.</p> <? } mysql_close(); } else { ?> <h2>Vous allez faire une recherche dans notre annuaire des infirmières. </br> Saisissez un nom pour réaliser une recherche.</h2> <form action="rechercher_nom.php" method="Post" class="position-form"> <div id="champrecherche"> <label for="nom">Nom : </label><input type="text" name="requete" size="50" onchange="javascript:this.value=this.value.toUpperCase();"> <input type="submit" class="bouton-inscription-recherche" value="Ok"> <a href="../index.php"><input class="bouton-inscription-accueil" type="button" value="Retour à l'accueil"/></a> </div> </form> <? } ?> <div id="image"> <img id="infirmiere" src="../images/infirmiere.jpg" alt="infirmière à domicile"/> </div> </body> <?php include('../cnx-dnx/includes/bas.php'); ?> </html>
Par avance, je vous en remercie !!!
Karine
Partager