Bonjour à tous, j'ai un petit soucis dans mon code php, je m'explique. J'ai suivi un tutoriel de pagination et tout ce passe bien, mon code fonctionne parfaitement. J'ai voulu rajouter une liste déroulante afin que le visiteur puisse rechercher une personne en fonction de son département mais le problème est que lorsque que l'utilisateur a fait son choix dans la liste déroulante, j'ai bien le bon nombre de page de pages qui s'affichent dans ma pagination et j'ai bien les personnes qui s'affichent sur la première page, mais dès que l'on clique sur la deuxième page on recommence à 0 comme si l'utilisateur n'avait pas fait son choix, pourtant dans la barre d'adresse j'ai bien la page 2 qui est stipulé. Je vous mets mon code. Merci beaucoup pour vos réponses et le temps que vous passez à m'aider.
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 <?php //On vérifie que les personnes soient présentes sur ce département. $bdd->quote() sert à eviter une injection $req3 = $bdd->query('SELECT COUNT(code_postal) AS verif_cp FROM personnes WHERE code_postal LIKE '. $bdd->quote($_POST['departement'] .'%')); $verif = $req3->fetch(); if ($verif['verif_cp'] == 0) {$erreur3 = "Aucun tatoueur n'est présent dans notre base de données sur ce département"; } else { //On définit le nombre de personne à afficher dans la page $personneParPage = 5; //on calcul le nombre total de page $nbPages = ceil($verif['verif_cp']/$personneParPage); // Récupération du numéro de la page courante depuis l'URL avec la méthode GET // S'il s'agit d'un nombre on traite, sinon on garde la valeur par défaut : 1 $current = 1; if (isset($_GET['p']) && is_numeric($_GET['p'])) { $page = intval($_GET['p']); if ($page >= 1 && $page <= $nbPages) { // cas normal $current=$page; } else if ($page < 1) { // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante $current=1; } else { //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante $current = $nbPages; } } // $start est la valeur de départ du LIMIT dans notre requête SQL (dépend de la page courante) $start = ($current $personneParPage - $personneParPage); //On récupère les personnes en fonction du département $req = $bdd->prepare("SELECT FROM personnes WHERE code_postal LIKE ? LIMIT $start, $personneParPage"); $req->execute(array($_POST["departement"] .'%')); while ($donnees = $req->fetch()) { ?> <div class="personnes"> <h3><?php echo $donnees['nom'];?><br/></h3> <?php echo $donnees['description'];?><br/> <a href="Personne_post.php?billet=<?php echo $donnees['id'];?>">En savoir plus</a> </div> <?php } ?> <?php } } ?>
Partager