CREATE TABLE `pagination` ( `id` INT( 4 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `titre` VARCHAR( 50 ) NOT NULL ) ENGINE = MYISAM
INSERT INTO `pagination` ( `id` , `titre` ) VALUES ( NULL , 'Ratatouille' ),( NULL , 'Tel père, telle fille' ), ( NULL , 'Mi$e à prix Mi$e à prix' ), ( NULL , 'Motel' ), ( NULL , 'Fido' ), ( NULL , 'Interview' ), ( NULL , 'Pathfinder' ), ( NULL , 'Ce que je sais de Lola' ), ( NULL , 'Roger et moi' ), ( NULL , 'Dreamland' );
$sql_nombre_de_lignes = mysql_query ( "SELECT `id` FROM `pagination`" ) ; $nombre_de_lignes = mysql_num_rows ( $sql_nombre_de_lignes ) ;
function nombrePages ( $nombre_total_de_lignes, $nombre_de_ligne_par_page )
{
// On crait un petit glossaire pour savoir à quoi servent les variables (pas obligatoire mais conseillé)
$reste = ''; // Va contenir le reste de la division entière
$nombre_pages = ''; // Va contenir le quotient de la division entière
// On récupère le reste de la division entière grâce à l'opérateur modulo (%)
$reste = $nombre_total_de_lignes % $nombre_de_ligne_par_page ;
// On fait la division entière pour ça il nous faut utiliser la fonction floor
$nombre_pages = floor ( $nombre_total_de_lignes / $nombre_de_ligne_par_page ) ;
// Donc le nombre minimum de page est $nombre_pages , +1 si le reste de la division entière est non nul, différent de 0, si tel est le cas on ajoute un à $nombre_pages
if ( $reste != 0 )
{
$nombre_pages += 1 ;
}
// Maintenant que l'on connait le nombre de page on a plus qu'à le retourner
return ( $nombre_pages ) ;
}
// On récupère le nombre de page qu'il faut pour afficher tous les enregistrements avec 3 enregistrement par page
$nombre_page = nombrePages ( $nombre_de_lignes, 3 ) ;
// On vérifie si le numéros de la page est spécifié dans l'url
if ( true === isset ( $_GET [ 'page' ] ) )
{
// Si il bien dans l'url on vérifie que ce soit bien un nombre
if ( true === is_numeric ( $_GET [ 'page' ] ) )
{
// On l'enregistre dans la variable $numero_page
$numero_page = $_GET [ 'page' ] ;
}
else
{
// Sinon on se place sur la première page
$numero_page = 1 ;
}
}
else
{
// Si le numéro de la page n'est pas spécifié dans l'url alors on se place sur la première page
$numero_page = 1 ;
}
$numero_premier_enregistrement = $numero_page * 3 - 3 // Si $numero_page == 1, $numero_premier_enregistrement = 0, soit 1 * 3 - 3 = 0
$sql_enregistrements = mysql_query ( "SELECT `titre` FROM `pagination` ORDER BY `titre` ASC LIMIT " . $numero_premier_enregistrement . ", 3" ) ;
echo '<ul>' . "\n" ; // <ul> balise annoçant le début d'une liste
while ( $tableau_enregistrement = mysql_fetch_assoc ( $sql_enregistrements ) )
{
echo ' <li>' . $tableau_enregistrement['titre'] . '</li>' . "\n" ; // <li> et </li> délimitant une ligne de la liste
}
echo '</ul>' ; // </ul> balise annonçant la fin de la liste
function listePages ( $nombre_pages )
{
$separateur = '' ;
for ( $i = 1; $i <= $nombre_pages; $i++ )
{
echo $separateur . '<a href="ma_page.php?page=' . $i . '">Page ' . $i . '</a>' ;
$separateur = ' | ' ;
}
}
listePages ( $nombre_page ) ;
// On vérifie si le numéros de la page est spécifié dans l'url
if ( true === isset ( $_GET [ 'page' ] ) )
{
// Si il bien dans l'url on vérifie que ce soit bien un nombre
// et si il est bien entre 1 et $nombre_page
if ( true === is_numeric ( $_GET [ 'page' ] ) && 1 <= $_GET [ 'page' ] && $nombre_page >= $_GET [ 'page' ] )
{
// On l'enregistre dans la variable $numero_page
$numero_page = $_GET [ 'page' ] ;
}
else
{
// Sinon on se place sur la première page
$numero_page = 1 ;
}
}
else
{
// Si le numéro de la page n'est pas spécifié dans l'url alors on se place sur la première page
$numero_page = 1 ;
}
<?php
// Information sur la configuration du serveur MySQL
// Ici configuration de base en local
$serveur = 'localhost' ;
$utilisateur = 'root' ;
$mot_de_passe = '' ;
// Nom de la base de donnée
$base_de_donnee = 'test' ;
// Connexion au serveur MySQL
mysql_connect ( $serveur, $utilisateur, $mot_de_passe ) ;
// Connexion à la base de donnée
mysql_select_db ( $base_de_donnee ) ;
// On définit les fonctions
function nombrePages ( $nombre_total_de_lignes, $nombre_de_ligne_par_page )
{
// On crait un petit glossaire pour savoir à quoi servent les variables (pas obligatoire mais conseillé)
$reste = ''; // Va contenir le reste de la division entière
$nombre_pages = ''; // Va contenir le quotient de la division entière
// On fait la division entière grâce à l'opérateur modulo (%)
$reste = $nombre_total_de_lignes % $nombre_de_ligne_par_page ;
// On fait la division entière pour ça il nous faut utiliser la fonction floor
$nombre_pages = floor ( $nombre_total_de_lignes / $nombre_de_ligne_par_page ) ;
// Donc le nombre minimum de page est $nombre_pages , +1 si le reste de la division entière est non nul, différent de 0, si tel est le cas on ajoute un à $nombre_pages
if ( $reste != 0 )
{
$nombre_pages += 1 ;
}
// Maintenant que l'on connait le nombre de page on a plus qu'à le retourner
return ( $nombre_pages ) ;
}
function listePages ( $nombre_pages )
{
$separateur = '' ;
for ( $i = 1; $i <= $nombre_pages; $i++ )
{
echo $separateur . '<a href="ma_page.php?page=' . $i . '">Page ' . $i . '</a>' ;
$separateur = ' | ' ;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Liste de 10 films sortie au cinéma le 1 Août 2007</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<?php
// Le glossaire
// Variables
$nombre_page = '' ; // Recevra le nombre de page totale
$numero_page = '' ; // Recevra le numéro de la page
$sql_nombre_de_lignes = '' ; // Recevra le résultat de la requête qui récupère tout les enregistremente de la table
$nombre_de_lignes = '' ; // Recevra le nombre d'enregistrement présent dans la table
$numero_premier_enregistrement = '' ; // Recevra le numéro du premier enregistrement de la page en cour
$sql_enregistrements = '' ; // Recevra le résultat de la requête ne selectionnant que les enregistrements à afficher sur la page
// Constantes
$nombre_enregistrement_par_page = 3 ; // C'est le nombre d'enregistrement à afficher par page
?>
</head>
<body>
Voici la liste :
<?php
$sql_nombre_de_lignes = mysql_query ( "SELECT `id` FROM `pagination`" ) ;
$nombre_de_lignes = mysql_num_rows ( $sql_nombre_de_lignes ) ;
$nombre_page = nombrePages ( $nombre_de_lignes, $nombre_enregistrement_par_page ) ;
// On vérifie si le numéros de la page est spécifié dans l'url
if ( true === isset ( $_GET [ 'page' ] ) )
{
// Si il bien dans l'url on vérifie que ce soit bien un nombre
if ( true === is_numeric ( $_GET [ 'page' ] ) && 1 <= $_GET [ 'page' ] && $nombre_page >= $_GET [ 'page' ] )
{
// On l'enregistre dans la variable $numero_page
$numero_page = $_GET [ 'page' ] ;
}
else
{
// Sinon on se place sur la première page
$numero_page = 1 ;
}
}
else
{
// Si le numéro de la page n'est pas spécifié dans l'url alors on se place sur la première page
$numero_page = 1 ;
}
$numero_premier_enregistrement = $numero_page * $nombre_enregistrement_par_page - $nombre_enregistrement_par_page ; // Si $numero_page == 1, $numero_premier_enregistrement = 0, soit 1 * $nombre_enregistrement_par_page - $nombre_enregistrement_par_page = 0
$sql_enregistrements = mysql_query ( "SELECT `titre` FROM pagination ORDER BY `titre` ASC LIMIT " . $numero_premier_enregistrement . ", " . $nombre_enregistrement_par_page ) ;
echo '<ul>' . "\n" ; // <ul> balise annoçant le début d'une liste
while ( $tableau_enregistrement = mysql_fetch_assoc ( $sql_enregistrements ) )
{
echo ' <li>' . $tableau_enregistrement['titre'] . '</li>' . "\n" ; // <li> et </li> délimitant une ligne de la liste
}
echo '</ul>' ; // </ul> balise annonçant la fin de la liste
listePages ( $nombre_page ) ;
?>
</body>
</html>
Page chargée en 5,010 ms
inscrit le : 04-08-2007