/*------------------------------*/
|
/*
|
Titre : Pagination basique
|
|
Auteur : zoda57
|
Date édition : 21 Aout 2008
|
Date mise a jour : 26 Sept 2019
|
|
Rapport de la maj:
|
- refactoring du code en PHP 7
|
- fonctionnement du code vérifié
|
*/
|
/*------------------------------*/?>
|
CREATE TABLE IF NOT EXISTS `phpsources_test` (
|
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
`texte` text,
|
PRIMARY KEY (`id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
--
|
-- Déchargement des données de la table `phpsources_test`
|
--
|
|
INSERT INTO `phpsources_test` (`id`, `texte`) VALUES
|
(1, 'I love PHP'),
|
(2, 'I do PHP'),
|
(3, 'Hello world'),
|
(4, 'Good morning'),
|
(5, 'Good night'),
|
(6, 'Im Free');
|
|
<?php
|
|
$db_server = 'localhost'; // Adresse du serveur MySQL
|
$db_name = ''; // Nom de la base de données
|
$db_user_login = 'root'; // Nom de l'utilisateur
|
$db_user_pass = ''; // Mot de passe de l'utilisateur
|
|
// Ouvre une connexion au serveur MySQL
|
$conn = mysqli_connect($db_server,$db_user_login, $db_user_pass, $db_name);
|
|
|
|
$table_sql = 'phpsources_test';
|
$limit = 3; //Nbr d'affichage sur la page
|
|
$page = isset($_GET['page']) ? $_GET['page'] : '';
|
|
// Prepare le requete MySql
|
$requete = "SELECT * from $table_sql ";
|
$q = mysqli_query($conn,$requete);
|
|
|
if( !isset($debut)) $debut=0;
|
|
$debut = $page*$limit;
|
|
// Compte le nombre de champ
|
$nb_total= $q->num_rows;
|
|
// Requete
|
$limite=mysqli_query($conn,"$requete limit $debut,$limit");
|
|
$limit_str = "LIMIT ". $page * $limit .",$limit";
|
|
$result = mysqli_query($conn,"SELECT *
|
FROM $table_sql
|
ORDER BY id DESC $limit_str");
|
|
while ($row = mysqli_fetch_array ($result) )
|
{
|
// affiche les differents champs
|
echo $row['texte'];
|
}
|
echo"<center><br />\n";
|
// Affiche le page par page avec ses liens
|
if ($page>0) {
|
$precedent=$page-1;
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$precedent.
|
'"><b><< Page précédente</b></a>';
|
}
|
|
$i=0;
|
$j=1;
|
|
if($nb_total>$limit) {
|
while($i<($nb_total/$limit)) {
|
if($i!=$page){ echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$j.
|
'</a>';}
|
else { echo " <b>$j</b> ";}
|
$i++; $j++;
|
}
|
}
|
|
if($debut+$limit<$nb_total) {
|
$suivant = $page +1 ;
|
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suivant.
|
'"><b><< Page précédente</b></a>';
|
echo '</center>';
|
}
|
| ?> |
Invité
04 Déc 2019 à 19:21Merci a l'auteur! love <3
Mehdi
19 Mai 2009 à 18:18un grand merci zoda57
ton code est vraiment utile
Invité
05 Nov 2008 à 13:16pas hyper sécurisé, mais sympa comme source pour comprendre le fonctionnement, merci!