Numérotation de page dans script pagination
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
Code:
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> |
Le résultat sort
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
numérotation de pages dans pagination PHP
Pour Jeffray 03
Merci pour ton coup de main.
J'ai essayé tes scripts, voici le résultat:
dans les 2 cas, j'ai bien l'affichage page 1/3 ; 2/3 ; 3/3 comme je souhaitais
mais le lien page 1 affiche la page 2
le lien page 2 affiche la page 3
le lien page 3 évidemment n'affiche rien
Voilà:(
Si tua as une solution... A bientot j'espère.
Quelle galère ce php!:evilred:
Michel
PB numerotation de page pagination php
:salut:
Jeffray 03
:yaisse2: ça marche impec...:king:
Cordialement
Wiedersehen
Michel