le premier parametre est tout simplement le num rows de ta requete
le second tu mets $max_row_by_page qui est la variable qui indique combien de messages apparaitront sur une page
le troisieme est tout simplement le lien vers laquelle pointeront les chiffres lorsque tu cliqueras dessus, par exemple dans mon cas lorsque tu accedes à un sujet, le lien ressemble à lire.php?forum=1&id=2. c'est donc à toi d'adapter selon tes besoins, ce qu'il voulait dire par "liste.php?variable=mavaleur" c'est que tu dois simplement mettre les variables dont tu as besoin en get, rien d'extraordianaire !
le quatrieme parametre est bien décris dans l'explication, c'est le nombre de chiffre qui entoureront la page actuelle.
j'espere que ca t'auras éclairé un minimum !
++
saharam72
Messages postés3Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention 6 mai 2006 6 mai 2006 à 04:16
Merci niko14 d'avoir répondu aussi vite à ma requete..
bon à vrais dire je préfére le 1er code et j'arrive bien à le comprendre..c'est pas ça le probléme.
en plus je trouve pas mal d'exemples de codes de pagination sur internet mais malheuresement comme le tient ils n'expliquent pas comment afficher le résultat de la requete sur chaque page web.
bon je pense que je dois faire plus d'effort de ma part et approfondir mes connaissance en php avant de ce lancer sur la pagination :)
merci a+
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 5 mai 2006 à 08:45
slt saharam72
Si ca te pose problememoi j'ai trouvé ce code la qui est pas mal du tout pour faire de la pagination:
<?php
$nombreDeMessagesParPage = 5; // Le nombre de news sur chaque page
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(id_lien) AS nb_liens FROM liens');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_liens'];
$page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query("SELECT id_lien, adresse_lien, entreprise_lien, recap_entrep_lien FROM liens ORDER BY id_lien LIMIT " . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
// Requête SQL
$i = 0;
?>
<?php
// On fait une boucle pour lister tout ce que contient la table :
saharam72
Messages postés3Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention 6 mai 2006 5 mai 2006 à 05:38
1er je suis débutant en php
2éme j'arrive pas à utiliser votre code. vous n'expliquez pas l'affichage des resultas.
l'exemple makeListLink(mysql_num_rows($result),20,"liste.php?variable=mavaleur",3);
n'est pas clair.
svp plus de détails sur (liste.php?variable=mavaleur).
j'éspere que vous allez répondre vite à ma requete car j'ai tellement besoin d'un code de pagination pour ma cite web et j'arrive pas à trouver
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 28 avril 2006 à 09:10
moi je le trouve pas mal ce code mais qqun pourrait il me dire ou je dois mettre qqch pour pouvoir justement afficher a l'ecran le resultat de ma requete!!
Moi je m'en sers pour faire différents liens mais la je suis un peu perdu pour savoir ou je mets ma boucle pour afficher mes liens svp!!
merciiiiii
kaputzan
Messages postés11Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 9 avril 2006 9 avril 2006 à 18:15
Salut,
Je viens d'utiliser ton code sur ma plateforme en ligne.
Bravo pour ton travail très clean, tu me fais gagner un temps précieux.
Je poste ce message et je file te mettre un 9/10 !
Encore merci
cs_ysn
Messages postés14Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention31 mars 2006 19 mars 2006 à 11:57
salut,
je sais pas comment utiliser ce code
merci de m'expliquer comment faire ..
(je debute)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 janv. 2006 à 16:47
Les , le tableau pas franchement nécessaire, les attributs html délimités par de simples quotes au lieu de guillemets.
Niveau php, utilise de simples quotes pour les echo, ce sera plus lisible, surtout avec le html :
echo '[blabla ', $bla, ']';
Pour ce qui est d'une classe, je ne suis pas non plus convaincu ;-)
Xeonarno => tu penses à quoi au juste ?
Pour ma part, ce que je trouverai intéressant, ce serait une fonction (ou plusieurs ) qui n'affiche rien, mais qui renvoie juste les infos nécessaires, et laisse le soin de la mise en page à l'utilisateur de la fonction (ou des fonctions ;-) ).
cs_Isengard
Messages postés83Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention10 février 2006 20 janv. 2006 à 15:39
Voila voila j'ai modifié le niveau come vous me l'avez indiqué ^^ Je m'en remet à votre jugement :p
Sinon Malalam y'a que trois / quatres lignes de HTML ^^ c'est mes et mes qui vont pas ?
Malik> ah mais je sais que c'est pas très très compliqué de faire de la pagination (voici le mot ^^) mais c'est toujours un peu la galère à mettre en place, là c'est un système rapide ^^. Evidemment on peut faire plus evolué mais c'était pas vraiment le but ;)
Par contre pour la class je vois pas trop comment je pourrais tourner ça :/
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 janv. 2006 à 14:36
Parce qu'un débutant se sur estime toujours un peu...jusqu'à ce qu'il devienne confirmé, et là, il va se sous-estimer ;-)
Bref, ceci dit, je laisse ce code : c'est toujours utile, il est commenté, et hj'ai vu pire comme programmation :-) Ceci dit oui, ç'eut été mieux en 'débutant'.
Par contre le html est limite :-) Faudrait voir à réécrire ça au propre.
xeonarno
Messages postés21Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention20 août 2006 20 janv. 2006 à 14:34
Peux tu renommer ton code source par "Pagination". C'est le principe que tu crée... Mais sympa ton code ^^. essaye d'en faire une classe et là ca pourra être super intéressant.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 20 janv. 2006 à 14:17
Pourquoi "Initié" ??? C'est débutant ça ! C'est d'ailleur un des premiers trucs que j'avais appris pour une galerie photo il y a des années... argh, émotion du souvenir :)
8 janv. 2008 à 20:51
et Merci Isengard pour ce code trés utile,
tu peux expli ca svp:
$page_begin = ($page_precedente - 1) * $maxpages;
???? pourquoi multiplier sur le nombre d'affichage sur page et pourquoi le -1.
11 juin 2006 à 20:26
Pour saharam72 , pour l'affichage des résultats -dans le cadre d'un forum- il suffit de faire un while :
makeListLink(mysql_num_rows($result),20,"liste.php?variable=mavaleur",3);
while ($row = mysql_fetch_array($result)) {
et tu mets l'affichage de ta page ici
sinon explications sur l'appel de la fonction d'après ce que j'en est fait :
makeListLink(mysql_num_rows($result),20,"liste.php?variable=mavaleur",3);
le premier parametre est tout simplement le num rows de ta requete
le second tu mets $max_row_by_page qui est la variable qui indique combien de messages apparaitront sur une page
le troisieme est tout simplement le lien vers laquelle pointeront les chiffres lorsque tu cliqueras dessus, par exemple dans mon cas lorsque tu accedes à un sujet, le lien ressemble à lire.php?forum=1&id=2. c'est donc à toi d'adapter selon tes besoins, ce qu'il voulait dire par "liste.php?variable=mavaleur" c'est que tu dois simplement mettre les variables dont tu as besoin en get, rien d'extraordianaire !
le quatrieme parametre est bien décris dans l'explication, c'est le nombre de chiffre qui entoureront la page actuelle.
j'espere que ca t'auras éclairé un minimum !
++
6 mai 2006 à 04:16
bon à vrais dire je préfére le 1er code et j'arrive bien à le comprendre..c'est pas ça le probléme.
en plus je trouve pas mal d'exemples de codes de pagination sur internet mais malheuresement comme le tient ils n'expliquent pas comment afficher le résultat de la requete sur chaque page web.
bon je pense que je dois faire plus d'effort de ma part et approfondir mes connaissance en php avant de ce lancer sur la pagination :)
merci a+
5 mai 2006 à 08:45
Si ca te pose problememoi j'ai trouvé ce code la qui est pas mal du tout pour faire de la pagination:
<?php
$nombreDeMessagesParPage = 5; // Le nombre de news sur chaque page
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(id_lien) AS nb_liens FROM liens');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_liens'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
if (isset($_GET['num_page']))
{
$page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query("SELECT id_lien, adresse_lien, entreprise_lien, recap_entrep_lien FROM liens ORDER BY id_lien LIMIT " . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
// Requête SQL
$i = 0;
?>
<?php
// On fait une boucle pour lister tout ce que contient la table :
while ($data = mysql_fetch_array($reponse) )
{
$i++;
?>
-[http://<?php echo $data[1]; ?> <?php echo ucfirst($data[2]); ?>]-
<?php echo ucfirst(nl2br($data[3])); ?>
<hr />
<?php
if($i == 4)
{
echo "</tr><tr>";
$i = 0;
}
}
?>
Page :
<?
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
if ($i==$page)
{
echo '[index.php?action=liens&num_page=' . $i . ' ' . $i . '] ';
}
else
{
echo '[index.php?action=liens&num_page=' . $i . ' ' . $i . '] ';
}
}
?>
5 mai 2006 à 05:38
2éme j'arrive pas à utiliser votre code. vous n'expliquez pas l'affichage des resultas.
l'exemple makeListLink(mysql_num_rows($result),20,"liste.php?variable=mavaleur",3);
n'est pas clair.
svp plus de détails sur (liste.php?variable=mavaleur).
j'éspere que vous allez répondre vite à ma requete car j'ai tellement besoin d'un code de pagination pour ma cite web et j'arrive pas à trouver
28 avril 2006 à 09:10
Moi je m'en sers pour faire différents liens mais la je suis un peu perdu pour savoir ou je mets ma boucle pour afficher mes liens svp!!
merciiiiii
9 avril 2006 à 18:15
Je viens d'utiliser ton code sur ma plateforme en ligne.
Bravo pour ton travail très clean, tu me fais gagner un temps précieux.
Je poste ce message et je file te mettre un 9/10 !
Encore merci
19 mars 2006 à 11:57
je sais pas comment utiliser ce code
merci de m'expliquer comment faire ..
(je debute)
20 janv. 2006 à 16:47
Niveau php, utilise de simples quotes pour les echo, ce sera plus lisible, surtout avec le html :
echo '[blabla ', $bla, ']';
Pour ce qui est d'une classe, je ne suis pas non plus convaincu ;-)
Xeonarno => tu penses à quoi au juste ?
Pour ma part, ce que je trouverai intéressant, ce serait une fonction (ou plusieurs ) qui n'affiche rien, mais qui renvoie juste les infos nécessaires, et laisse le soin de la mise en page à l'utilisateur de la fonction (ou des fonctions ;-) ).
20 janv. 2006 à 15:39
Sinon Malalam y'a que trois / quatres lignes de HTML ^^ c'est mes et mes qui vont pas ?
Malik> ah mais je sais que c'est pas très très compliqué de faire de la pagination (voici le mot ^^) mais c'est toujours un peu la galère à mettre en place, là c'est un système rapide ^^. Evidemment on peut faire plus evolué mais c'était pas vraiment le but ;)
Par contre pour la class je vois pas trop comment je pourrais tourner ça :/
20 janv. 2006 à 14:36
Bref, ceci dit, je laisse ce code : c'est toujours utile, il est commenté, et hj'ai vu pire comme programmation :-) Ceci dit oui, ç'eut été mieux en 'débutant'.
Par contre le html est limite :-) Faudrait voir à réécrire ça au propre.
20 janv. 2006 à 14:34
20 janv. 2006 à 14:17