Bonsoir,
J'ai adapté ce script pour mes pages, mais un détail me "chiffonne":
<body>
source: http://php.developpez.com/sources/in...ysqlpagination
auteur Nesmontou
Le résultat sort
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 <?php // Numéro de la page à afficher $page = 0; if(isset($_GET['page'])) { $page = intval($_GET['page']); } // Nombre de résultats par page $nb = 5; // ce sera le nb minimun d'affichages if(isset($_GET['nb'])) { $nb = max(intval($_GET['nb']), $nb); // Assure au moins $nb résultats par page } // Connexion au serveur de base de données $conn = mysql_connect('localhost', 'root', 'pwd'); if(!$conn) { die('Impossible de se connecter au serveur.'); } // Connexion à la base de données $db = mysql_select_db('coursphp', $conn); if(!$db) { die('Impossible de se connecter à la base de données.'); } // Nombre total d'enregistrements $sql = 'SELECT COUNT(*) FROM xmen;'; $query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error()); $row = mysql_fetch_row($query); $total = $row[0]; // Nombre maximum de pages $max_pg = ceil($total / $nb); // Selection des enregistrements pour la page considérée $sql = 'SELECT id, personnage, acteur FROM xmen LIMIT '.($page * $nb).','.$nb.''; $query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error()); ?> <table width="700" border="1"> <tr> <td width="129">Vous êtes sur la page <?= $page ?> / <?= $max_pg ?><br /> Pages : <?php for($i = 0 ; $i < $max_pg ; $i++) { echo ' <a href="?page='.$i.'&nb='.$nb.'">'.($i + 1).'</a>'; } ?></td> <td width="169"><?= $nb ?> réponses par page</td> <td width="200">Nombre total de réponses <br /> <?= $total ?></td> <td width="174">Afficher<br /> <a href="?page=<?= $page ?>&nb=5">5</a> ou <a href="?page=<?= $page ?>&nb=10">10</a> ou <a href="?page=<?= $page ?>&nb=20">20</a><br /> réponses par page</td> </tr> </table> <table> <tr> <th>ID</th> <th>Personnage</th> <th>Acteur</th> </tr> <?php while($list = mysql_fetch_assoc($query)) { echo '<tr>'; echo '<td>'.$list['id'].'</td>'; echo '<td>'.$list['personnage'].'</td>'; echo '<td>'.$list['acteur'].'</td>'; echo '</tr>'; } ?> </table> <p> </p> </body>
Lien vers les pages: Pages 1 2 3 (dans le cas de 3 pages)
Le script affiche Vous êtes sur la page 0 / 3 , 1 / 3 et 2 / 3 au lieu de Page 1 / 3 , 2 / 3 et 3 / 3 ce qui serait plus logique pour le lecteur
J'ai cherché où était le PB, mais je donne ma langue au chat.
Si quelqu'un a la solution, je l'en remercie d'avance.
Cordialement.
Michel
Partager