navagation par page

Eléphanteau du PHP | 25 Messages

28 août 2005, 13:50

Bonjour,

Je voudrais savoir comment on fait le type de navigation par pages. Genre :

< 1 2 3 >

en bas d'une page pour que je ne mette pas tous mes enregistrement sur une même page avec scroll interminable.

Merci beaucoup,

Eléphant du PHP | 55 Messages

28 août 2005, 14:33

Salut
il ya un bon tuto la dessus ici ;)
Bonne prog' ;)
Djehouty

Eléphant du PHP | 199 Messages

28 août 2005, 14:35

Avec LIMIT dans ta requete SQL :wink:
Les 2 font la paire : coder ET commenter :wink:

Eléphanteau du PHP | 25 Messages

28 août 2005, 16:35

ok j'ai presque tout compris. seulement ma table contient 75 enregistrement. alors quand j'utilise ce code ça fonctionne pour la 1er page pas de problèmes, j'ai bien le lien "suivant" mais sur la seconde page je n'ai que le lien "précédent"...
				<?
include("local.inc");

$connexion = mysql_connect($host, $user, $password)
or die ("Connexion au serveur impossible !");

$db = mysql_select_db($db, $connexion)
or die ("La base de donn&eacute;e ne peut pas &ecirc;tre s&eacute;lectionn&eacute;e");

//sélection total des données
$req_limit = mysql_query("Select * from work");
$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="test.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="test.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>'; 
}


$req = mysql_query("SELECT w_name from work Order by w_date Desc Limit $limite_mysql , $limite_page") or die ("erreur requête"); 

while ($ligne = mysql_fetch_array($req))
{extract($ligne);

echo"$w_name";}
?>
bon je suppose que c'est dans la dernière partie du code mais je comprend pas tout...

merci de votre aide.

XAviuer

Mammouth du PHP | 19672 Messages

28 août 2005, 17:01

Deux messages parallèles sur le même sujet, ce n'est peut-être pas utile, regarde donc ICI

Il y a aussi un bon tuto sur phpdebutant
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: