par
xencinas » 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ée ne peut pas être sélectionné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 ' <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
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"...
[php]
<?
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ée ne peut pas être sélectionné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 ' <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";}
?>[/php]
bon je suppose que c'est dans la dernière partie du code mais je comprend pas tout...
merci de votre aide.
XAviuer