Recherche rapide
     
Espace Membres
il y'a actuellement 32370 membres
 
Pseudo  
Password  
inscriptions
 
Cours php/Tutoriels
  1/  Apprendre les bases de PHP
  1a/  Divers en PHP, les erreurs, les variables etc...
  2/  Les variables
  3/  Les variables d'environnements
  4/  Les conditions
  5/  Les boucles
  6/  Les cookies
  7/  Travailler sur les dates
  8/  Les tableaux array()
  9/  Travailler avec les fichiers
  10/  Traiter les chaines de caractères
  11/  Récuperer et verifier les données d'un formulaire
  12/  Envoyer des mails
  13/  Les pseudo-frames
  14/  Débuter avec mysql
  15/  Fonctions update et delete de mysql
  16/  Comprendre et utiliser la clause where
  17/  Liste de quelques fonctions mysql
  18/  Mysql par la pratique, construire un livre d'or
  19/  Construire un mini moteur ou annuaire
  20/  Afficher sur plusieurs pages
  21/  La construction de votre forum
  22/  Faire son script de sondage (vote)
  23/  Sessions , mise en pratique
  24/  Sessions , récapitulatif
  25/  Les expressions régulières
  26/  Coder son ANTI-FLOOD
  27/  Utiliser et créer ses fonctions
  28/  Upload et transfert de fichiers
 
 
 
Liens
  Les cours pour bien débuter PHP
Afficher sur plusieurs pages n°20

Mis à jour le 23-1-2007

Pour améliorer vos codes, je vais vous expliquer simplement comment installer un lien pour afficher les pages suivantes. On reprend le code du livre d'or ( cours n°18) .

La requête originale de la page d'affichage
//on se connecte à la base de donnée
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");

//sélection de votre base de donnée
mysql_select_db($mysql_base,$db) or die ("erreur de connexion
base");


//la requête de sélection des messages
$req = mysql_query("SELECT date,pseudo,email,message from livre_tbl Order by date_verif Desc ") or die ("erreur requête".mysql_error());



Avec ce type de requête , vous affichez toutes les données contenu dans le livre d'or, pour limiter la sortie, précéder comme suit.

 
1°/ On compte les messages que le livre contient

//on se connecte à la base de donnée
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");

//sélection de votre base de donnée
mysql_select_db($mysql_base,$db) or die ("erreur de connexion
base");


//sélection total des données
$req_limit = mysql_query("Select id from livre_tbl");
$resultat = mysql_numrows($req_limit);//mysql_numrows donne le resultat de la requête

// maintenant on va se servir du résultat pour limiter la sortie
$limite_page = '10'; //choisissez le nombre de messages par pages
$nombre_page = $resultat / $limite_page; // ici on divise le total par le nombre de messages que vous avez choisi

$nombre_total = ceil($nombre_page); // on arrondi le nombre de page pour ne pas avoir de virgules, ici au chiffre supérieur

$nombre = $nombre_total - 1; // on enlève 1 au nombre de pages, car la 1ere page est celle affiché ne fait pas partie des pages suivantes

if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' ) // si la variable numéro de page a une valeur ou est différente de 0

{
$limite_mysql = $limite_page * $_GET['numero_page']; // on multiplie votre limite par le numero de la page passée par l'url


}
else{
// pas de variable numero_page

$limite_mysql = '0'; // la limite est de 0

}

Voilà, on a fait le plus gros, on a compté le nombre page et préparé les limites pour l'affichage, passons maintenant à la requête de sortie
 
La requête pour la page d'affichage

//la requête originale de sélection des messages
$req = mysql_query("SELECT date,pseudo,email,message from livre_tbl Order by date_verif Desc ") or die ("erreur requête");


//la requête modifiée de sélection des messages
$req = mysql_query("SELECT date,pseudo,email,message from livre_tbl Order by date_verif Desc Limit $limite_mysql , $limite_page") or die ("erreur requête");

Dans la nouvelle requête, nous fixons les limites, avec votre limite de messages par pages ( $limite_page ) et la limite qui sera définie par le compteur ( $limite_mysql ).
 
La dernière étape, le lien pour afficher les pages

if( $nombre != '0' && empty($_GET['numero_page']))// si le nombre de page n'est pas 0 et si la variable numero_page n'est pas définie
{

print '<a href="affichage.php?numero_page=1">Page suivante</a>'; // on passe la variable numéro page à 1
}

// dans cette condition, la variable numero_page est incrémenté et est inférieure à $nombre

elseif($nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] < $nombre)
{
$suivant = $_GET['numero_page'] + 1;
// on ajoute 1 au numéro de page en cours

print '<a href="affichage.php?numero_page='.$suivant.'">Page suivante</a>'; //le lien pour les pages suivantes

print '&nbsp;&nbsp;<a href="javascript: history.back();">Page précédente</a>'; // retour page précédente, ici version javascript
}


// dans cette condition, le lien qui sera affiché lorsque le nombre de page a été atteint
elseif( $nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] >= $nombre )
{
print '<a href="javascript: history.back();">Page précédente</a>';
}

Et voilà, vous avez tous les éléments entre vos mains, il vous suffit juste de l'insérer dans le code du livre d'or.
 
Ca ressemblera à ça

//on se connecte à la base de donnée
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");

//sélection de votre base de donnée
mysql_select_db($mysql_base,$db) or die ("erreur de connexion
base");


//sélection total des données
$req_limit = mysql_query("Select id from livre_tbl");
$resultat = mysql_numrows($req_limit);//mysql_numrows donne le résultat de la requête

// maintenant on va se servir du résultat pour limiter la sortie
$limite_page = '10'; //choisissez le nombre de messages par pages
$nombre_page = $resultat / $limite_page; // ici on divise le total par le nombre de messages que vous avez choisi

$nombre = ceil($nombre_page); // on arrondi le nombre de page pour ne pas avoir de virgules, ici au chiffre supérieur

$nombre = $nombre_total - 1; // on enlève 1 au nombre de pages, car la 1ere page est celle affiché ne fait pas partie des pages suivantes

if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' ) // si la variable numéro de page a une valeur ou est différente de 0

{
$limite_mysql = $limite_page * $_GET['numero_page']; // on multiplie votre limite par le numéro de la page passée par l'url


}
else{
// pas de variable numero_page

$limite_mysql = '0'; // la limite est de 0

}



/*----------------------------------------------------------------

on met les liens pour éviter de les oublier ;-)

------------------------------------------------------------------*/


if( $nombre != '0' && empty($_GET['numero_page']))// si le nombre de page n'est pas 0 et si la variable numero_page n'est pas définie
{

print '<a href="affichage.php?numero_page=1">Page suivante</a>'; // on passe la variable numéro page à 1
}

// dans cette condition, la variable numero_page est incrémenté et est inférieure à $nombre

elseif($nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] < $nombre)
{
$suivant = $_GET['numero_page'] + 1;
// on ajoute 1 au numero de page en cours

print '<a href="affichage.php?numero_page='.$suivant.'">Page suivante</a>'; //le lien pour les pages suivantes

print '&nbsp;&nbsp;<a href="javascript: history.back();">Page précédente</a>'; // retour page précédente, ici version javascript
}


// dans cette condition, le lien qui sera affiché lorsque le nombre de page a été atteint
elseif( $nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] >= $nombre )
{
print '<a href="javascript: history.back();">Page précédente</a>';
}

/*----------------------------------------------------------------

La suite du code livre d'or avec la nouvelle requête de sélection

------------------------------------------------------------------*/


$req = mysql_query("SELECT date,pseudo,email,message from livre_tbl Order by date_verif Desc Limit $limite_mysql , $limite_page") or die ("erreur requête");

// la suite se trouve dans le cours n°18


 

C'est terminé, il ne manque plus qu'à mettre le code en application, alors au boulo, il n y'a pas de soleil ;-)

 

A vos claviers et bonne prog
'e' Stressman


>>> Cours suivant n° 1

 

 

 
 
Rubrique installer
  1°/  Apache et PHP
  2°/  Mysql sur votre PC (version tar.gz)
  3°/  Mysql sur votre PC (version rpm)
 
Newsletter

 
Votez !!
Pas de votes ni suggestions actuellement
 
 
 
Débuter Linux
 1°/   Introduction
 2°/   Installation ( 1ere partie )
 3°/   Installation ( 2ème partie )
 4°/   Connexion / documentation / Synthaxe
 5°/   Les différentes commandes sous linux
 6°/   Installer / Désinstaller / Lister les applications
 7°/   Manipulation des chaines de caractères
 
    © Copyright 2005 - az-php.com - tous droits réservés , reproduction interdite . Hébergé par 1hebergeur.com [ mentions légales & copyright ]