Pagination [HTML - PHP]
Fermé
ZooX
-
25 août 2009 à 15:05
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 2 sept. 2009 à 16:21
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 2 sept. 2009 à 16:21
A voir également:
- Pagination [HTML - PHP]
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Pagination powerpoint - Guide
- Espace en html - Astuces et Solutions
- Espace html ✓ - Forum HTML
10 réponses
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
25 août 2009 à 15:28
25 août 2009 à 15:28
tu dois modifier ton for
$nombreDePages étant le nombre de page au total, tu n'as qu'a mettre une autre variable contenant le nombre de page que tu veux qu'il y ai affiché.
Ensuite, tu dois un peut bidouiller pour rajouter "page suivante" et "page précédente"
bonne chance :)
for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> '; }
$nombreDePages étant le nombre de page au total, tu n'as qu'a mettre une autre variable contenant le nombre de page que tu veux qu'il y ai affiché.
Ensuite, tu dois un peut bidouiller pour rajouter "page suivante" et "page précédente"
bonne chance :)
Salut okuni,
tu peut me donné un exemple de modification pour le for ?parce que je vois pas trop comment je dois faire ...
merci...
tu peut me donné un exemple de modification pour le for ?parce que je vois pas trop comment je dois faire ...
merci...
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
25 août 2009 à 17:21
25 août 2009 à 17:21
Ok, je vais te montrer un bout de mon code de pagination.
voilà.
je t'explique :
Je calcule le nombre de lien qu'il y aura avant et après la page actuel.
Je pense pas devoir expliquer chaque variable, elles sont assez clair.
avec ça, il reste plus que l'intérieur du for :)
//On calcule le nombre total d'entrée dans la table. $retour1 = mysql_query("SELECT COUNT(*) AS nbre_entree FROM $table"); $donnees1 = mysql_fetch_array($retour1) or die (mysql_error()); $total = $donnees1['nbre_entree']; //On récupère le GET du lien. if (!empty($_GET['lien'])) { $lien = intval($_GET['lien']); } else { $lien = 1; } //On calcule le nombre de page. $nombre_de_page = ceil($total / $nombre_entree_par_page); //préparation au début du for $nombre_lien_avant = $lien - $nombre_lien_max; if ($nombre_lien_avant <= 0) { $nombre_lien_avant = 1; } //préparation a la fin du for. $nombre_lien_apres = $lien + $nombre_lien_max; if ($nombre_lien_apres >= $nombre_de_page) { $nombre_lien_apres = $nombre_de_page; } for ($i = $nombre_lien_avant; $i <= $nombre_lien_apres; $i++)
voilà.
je t'explique :
Je calcule le nombre de lien qu'il y aura avant et après la page actuel.
Je pense pas devoir expliquer chaque variable, elles sont assez clair.
avec ça, il reste plus que l'intérieur du for :)
J'ai fait ça grace a ton code :
Mais le problemme maintenant , c'est que ça affiche uniquement les 4 premières pages...
ce que je voudrai c'est que la numérotation des pages s'adapte en fonction de la page que l'on regarde (par exemple si on regarde la page 5 :
< [4] [5] [6] > )
<?php $nombre_entree_par_page = 40; $nombre_lien_max = 3; //On calcule le nombre total d'entrée dans la table. $retour1 = mysql_query("SELECT COUNT(*) AS nbre_entree FROM films"); $donnees1 = mysql_fetch_array($retour1) or die (mysql_error()); $total = $donnees1['nbre_entree']; //On récupère le GET du lien. if (!empty($_GET['id'])) { $lien = intval($_GET['id']); } else { $lien = 1; } //On calcule le nombre de page. $nombre_de_page = ceil($total / $nombre_entree_par_page); //préparation au début du for $nombre_lien_avant = $lien - $nombre_lien_max; if ($nombre_lien_avant <= 0) { $nombre_lien_avant = 1; } //préparation a la fin du for. $nombre_lien_apres = $lien + $nombre_lien_max; if ($nombre_lien_apres >= $nombre_de_page) { $nombre_lien_apres = $nombre_de_page; } for ($i = $nombre_lien_avant; $i <= $nombre_lien_apres; $i++) { echo ' <a href="films.php?page=' . $i . '"class="type2"><b><font size="3">[' . $i . ']</font></b></a> '; } ?>
Mais le problemme maintenant , c'est que ça affiche uniquement les 4 premières pages...
ce que je voudrai c'est que la numérotation des pages s'adapte en fonction de la page que l'on regarde (par exemple si on regarde la page 5 :
< [4] [5] [6] > )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
26 août 2009 à 21:40
26 août 2009 à 21:40
bon c'est assez dur de rentrer dans ce code.
je te passe mon script entier, a toi de l'adapter.
Je te conseille vivement de lire attentivement tout le code. Si tu as une question, n'hésite pas.
ps : je crois que dans le for, il y a une partie (if) qui est inutile mais bon, tu verra par toi même.
je te passe mon script entier, a toi de l'adapter.
Je te conseille vivement de lire attentivement tout le code. Si tu as une question, n'hésite pas.
ps : je crois que dans le for, il y a une partie (if) qui est inutile mais bon, tu verra par toi même.
<?php //Pagnination made by Okuni. /*LIMIT. LIMIT $premier_message, $nombre_entree_par_page */ function pagination($page,$table,$nombre_entree_par_page,$nombre_lien_max) { //On calcule le nombre total d'entrée dans la table. $retour1 = mysql_query("SELECT COUNT(*) AS nbre_entree FROM $table"); $donnees1 = mysql_fetch_array($retour1) or die (mysql_error()); $total = $donnees1['nbre_entree']; //On récupère le GET du lien. if (!empty($_GET['lien'])) { $lien = intval($_GET['lien']); } else { $lien = 1; } //On calcule le nombre de page. $nombre_de_page = ceil($total / $nombre_entree_par_page); //préparation au début du for $nombre_lien_avant = $lien - $nombre_lien_max; if ($nombre_lien_avant <= 0) { $nombre_lien_avant = 1; } //préparation a la fin du for. $nombre_lien_apres = $lien + $nombre_lien_max; if ($nombre_lien_apres >= $nombre_de_page) { $nombre_lien_apres = $nombre_de_page; } //Si le nombre de page != 1 on affiche pas le cadre de pagination if ($nombre_de_page != 1) { //On écrit une boucle pour écrire les liens vers les différentes pages. echo '<div class="pagination">Page :<br/>'; for ($i = $nombre_lien_avant; $i <= $nombre_lien_apres; $i++) { //si on commence le for, on vois si on est sur la première page ou pas. if ($i == $nombre_lien_avant) { if ($_GET['lien'] == 1 or $lien == 1) { echo '>> '; echo '<a class="pageActive"><strong><u>'.$i.'</u></strong></a> '; } else { $i_precedent = $_GET['lien'] - 1; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i_precedent.'.html">Page précédente</a> '; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i.'.html">'.$i.'</a> '; } } //on souligne le numéro de la page sélectionnée. else if ($i == $_GET['lien']) { if ($i == $nombre_de_page) { //echo 'dernier lien : '.$i; if ($_GET['lien'] == $nombre_de_page) { echo '<a class="pageActive"><strong><u>'.$i.'</u></strong></a> '; echo '<<'; } else { $i_suivant = $_GET['lien'] + 1; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i.'.html">'.$i.'</a> '; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i_suivant.'.html">Page suivante</a> '; } } else { echo '<a class="pageActive"><strong><u>'.$i.'</u></strong></a> '; } } //si on termine le for, on vois si on a sélectionné le dernier lien ou pas. else if ($i == $nombre_lien_apres) { //echo 'dernier lien : '.$i; if ($_GET['lien'] == $nombre_lien_apres) { echo '<<'; } else if (empty($_GET['lien']) and $lien == 1) { $i_suivant = 2; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i.'.html">'.$i.'</a> '; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i_suivant.'.html">Page suivante</a> '; } else { $i_suivant = $_GET['lien'] + 1; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i.'.html">'.$i.'</a> '; echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i_suivant.'.html">Page suivante</a> '; } } //sinon on affiche le lien correspondant a $i. else { echo '<a href="'.$_GET['section'].'-'.$page.'-'.$i.'.html">'.$i.'</a> '; } } echo '</div>'; } $premier_message = ($lien - 1) * $nombre_entree_par_page; return $premier_message; } ?>
Salut,
je travaille sur ton code ... il est vachement long :p
mais en fait j'ai pas besoin de changer beaucoup de chose a ton code pour l'adapté a mon site . non ?
deja dans les premières lignes y'a :
es-ce que je suis sensé changé $table et le remplacer par le nom de ma table ???
.
je travaille sur ton code ... il est vachement long :p
mais en fait j'ai pas besoin de changer beaucoup de chose a ton code pour l'adapté a mon site . non ?
deja dans les premières lignes y'a :
pagination($page,$table,$nombre_entree_par_page,$nombre_lien_max)
es-ce que je suis sensé changé $table et le remplacer par le nom de ma table ???
.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
29 août 2009 à 19:52
29 août 2009 à 19:52
oui tout a fait.
En fait, j'ai voulu faire un système de pagination qui s'adapte à n'importe quel situation.
D'où la fonction pagination avec le nom de la page en cour, la table s'y rapportant, le nombre d'entrée par page et le nompbre max de page à afficher.
En fait, j'ai voulu faire un système de pagination qui s'adapte à n'importe quel situation.
D'où la fonction pagination avec le nom de la page en cour, la table s'y rapportant, le nombre d'entrée par page et le nompbre max de page à afficher.
J'ai un problemme au niveau de cette ligne : (parse error, expecting `'&'' or `T_VARIABLE')
j'ai remplacé les $page,$table,$nombre_entree_par_page,$nombre_lien_max comme ça :
(la page ou se trouve ton script s'appelle : images.php la table s'appelle images , je voudrais 40 entrés par pages et 3 liens )
Merci de bien vouloir m'aider :)
pagination($page,$table,$nombre_entree_par_page,$nombre_lien_max)
j'ai remplacé les $page,$table,$nombre_entree_par_page,$nombre_lien_max comme ça :
function pagination($images,$images,$40,$3)
(la page ou se trouve ton script s'appelle : images.php la table s'appelle images , je voudrais 40 entrés par pages et 3 liens )
Merci de bien vouloir m'aider :)
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
1 sept. 2009 à 13:06
1 sept. 2009 à 13:06
heu, une variables commencant par un chiffres n'existe pas. tu es obligé de faire commencer par une lettre. libre à toi d'après rajouter des chiffres.
exemple :
$15var : variables mauvaise.
$var15 : variable correcte.
exemple :
$15var : variables mauvaise.
$var15 : variable correcte.
Merci okuni pour ton script , j'ai pas encore réussit a l'intégré dans mon site mais sa viendra
merci encore
++
merci encore
++
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
2 sept. 2009 à 16:21
2 sept. 2009 à 16:21
Pas de problème.
normalement, tu n'as rien a faire à part remplir les 4 variables de la fonction pagination et de modifier s'il faut la requête sql au début du script.
Biens sur il y au aussi le CSS.
normalement, tu n'as rien a faire à part remplir les 4 variables de la fonction pagination et de modifier s'il faut la requête sql au début du script.
Biens sur il y au aussi le CSS.