PAGINATION TRÈS SIMPLE: PAGE SUIVANTE, PRÉCÉDENTE, MARQUAGE DE LA PAGE OÙ L'ON E
Dr_J_Dre
Messages postés5Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention 2 août 2004
-
2 août 2004 à 03:07
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 2014
-
16 mars 2011 à 13:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 20149 16 mars 2011 à 13:46
ce code est ani-islam
cs_Jashugal
Messages postés2Date d'inscriptionlundi 19 juin 2006StatutMembreDernière intervention22 juillet 2008 22 juil. 2008 à 20:57
Ben, de rien c'est fait pour : )
cs_marial
Messages postés13Date d'inscriptionjeudi 1 février 2007StatutMembreDernière intervention 5 juin 2007 21 juil. 2008 à 10:57
Bonjour Jashugal !
Merci pour ton bout de code corrigé, il est parfait, impect et cela m'a vraiment aidé pour mes systèmes de paginations.
Mile fois merci ton code fonctionne à merveille chez moi
gigaprint
Messages postés2Date d'inscriptionmardi 22 août 2006StatutMembreDernière intervention 6 septembre 2006 31 août 2006 à 00:34
Salut à tous,
J'ai beau chercher pourquoi ce script ne marche pas et je ne vois rien, voilà le problème :
J'affiche bien la première page de ma requete, j'y trouve bien le bon nombre d'enregistrements, tous les liens apparaissent bien mais impossible d'afficher les autres pages.
L'url des liens semble bonne .../pagination.php?where=2 ou 3, etc. mais je reste sur la première page ?
J'ai testé plusieurs scripts de pagination, ça parait enfantin au départ et pourtant ça coince toujours à ce niveau là. Y a un truc que je pige pas !
Un tutorial sur le sujet serait le bienvenu !
Merci de votre aide.
rakizm
Messages postés80Date d'inscriptionlundi 19 juin 2006StatutMembreDernière intervention16 février 2008 21 juil. 2006 à 14:40
sorry les mecs c'est ma requete qui est tres compliquée :( au fait pour mon affichage j'utilise X>1 requètes en utilisant votre systeme j'applique la limite aux X requètes une apres une . le resultat final ne sera pas forcement celui attendu???!! non? si vous aves des astuces j'attend.
rakizm
Messages postés80Date d'inscriptionlundi 19 juin 2006StatutMembreDernière intervention16 février 2008 21 juil. 2006 à 13:49
je suis désolé les gars mais c'est pas la bonne formule essayez avec
$news_par_pages = 15 ; par exemple
vous comprendrez ;)
ce que j'ai pas compris c pourquoi à la première page il m'affiche tous les résultats????? ôô
cs_Jashugal
Messages postés2Date d'inscriptionlundi 19 juin 2006StatutMembreDernière intervention22 juillet 2008 19 juin 2006 à 21:30
Voila le code corrigé (du moins, qui marche chez moi puisqu'il ne marchait pas tel quel) :
<?php
// Cette pagination est présente sur la page pagination.php (c'est un exemple bien sûr...)
// On se connecte à la base de données via une include (modifiez le nom du fichier)
include('includes/data.inc.php');
// Il faut connaitre le nombre total de news (par exemple) que vous avez...
$req1 = mysql_query('SELECT COUNT(*) FROM news');
$nbnews = mysql_fetch_row($req1);
$nbnews = $nbnews[0];
//Le nombre de news que l'on veut par page
$news_par_pages = 1;
//On fait donc la moyenne pour savoir combien il y aura de pages
$moy = $nbnews/$news_par_pages;
//Ensuite, il nous faut un chiffre rond, et pour cela il y a une fonction formidable qui
// arrondi un nombre décimal au nombre entier suppérieur, ceil() !
$sit = ceil($moy);
//Il faut maintenant afficher vos pages...
//Ici, pour avoir un max de clarté j'ai mis le minimum d'html, mais rien ne vous empeche
//de mettre des tableaux, des couleurs etc...
if (!($where)) // Si $where n'existe pas il est égal à un
{
$where=1;
}
//La formule (magique, si vous voulez)
$min = ($where-1) * $news_par_pages;
$req2 = mysql_query("SELECT * FROM news LIMIT $min,$news_par_pages");
while ($ligne=mysql_fetch_array($req2))
{
$contenu= nl2br($ligne['contenu']);
echo"$contenu
";
}
echo '
';
$start = 1;
//Si $where est strictement plus grand que 1, alors il faut un bouton précédent
if ($where>=2)
{
$pre = $where-1;
echo " < ";
}
while ($start < $where)
{
echo "";
echo $start++;
echo " ";
}
echo " $where ";
$nwhere =$where+1;
while ($nwhere <= $sit)
{
echo "";
echo $nwhere++;
echo " ";
}
if ($where < $sit)
{
$sui= $where+1;
echo " > ";
}
?>
++++ et bonne soirée
bourgi220
Messages postés21Date d'inscriptionsamedi 27 mars 2004StatutMembreDernière intervention30 août 2006 5 août 2004 à 12:34
tu comprends vraiment rien à rien... j'ai même écrit (dans ma source) que j'avais spécialement écrit cette source pour la poster sur ce site... donc j'ai pas "copier coller" une des pages de mon site!
alors avant de critiquer lis au moins ce que j'ai écrit!
quand je mets "include('votreconnection.php');" je vois pas en quoi ca te gene... je dis simplement qu'il faut se connecter à la base de donnée... puis je mets
$req=mysql_query("SELECT * FROM news"); et je dis que news est un exemple et quil faut le remplacer par la table voulue!
alors je crois que le débat est clos... t'as dit tout simplement n'importe quoi!
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 2 août 2004 à 16:44
Tout le monde réagit comme ca... vraiment c'est rendu nul...
Si je te copiais collais des sources de mon site juste pour dire "regarder c'est comme ca que ca marche" avec des 20aine d'include que tu n'as pas le fichier, des connexion dont tu n'as pas la base de données... ca serait tout simplement nul. Avant de poster un code, il faut s'assurer que celui-ci fonctionne simplement en l'executant ! C'est la moindre des choses ! Sinon c'est chiant, il faut tout vider le code des choses inutiles.
bourgi220
Messages postés21Date d'inscriptionsamedi 27 mars 2004StatutMembreDernière intervention30 août 2006 2 août 2004 à 15:16
Dr_J_Dre> where est une variable présente dans l'adresse qui indique à quelle page on se trouve... la valeur par défault est 1 (page une...)
GRenard> peut-être que ma présentation n'est pas parfaite mais je pense que il y a une manière plus sympathique de le dire...
Et puis je voudrais pas parraître désagréable mais: " si tu veux que je réponde et te donner de bonnes suggestions, tu vas commencer par modifier ton code en enlevant les surplus inutiles (include, mysql...) et fournir dans des variables constantes les valeurs de test de réception...
Si tu fais ca, je regarderai !", tu sais moi j'ai mis cette source pour ceux qui en ont besoin... après ceux qui veulent me donner des conseils, bin c'est bien sympas et je les en remercie mais ceux à qui il faut lècher les bottes pour soutirer qques conseils ils peuvent franchement aller se faire voir...
allé a++ sans rancune
willinfeo
Messages postés55Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention 4 décembre 2005 2 août 2004 à 12:48
Salut à tous,
pas mal comme code, ya des commentaires meme si au niveau presentation c'est pas parfait. Par contre dire que tout tourne autour de ceil, c'est un peu exagerer. Pour arrondir une valeur, y a d'autres possibilites.
Mais bon, c'est pour DEBUTANT, donc soyons indulgeants, n'est-ce pas Jean-Sebastien. Au fait tu pourras corriger mes devoirs qd aura 5 mn. Qu'est-ce qu'on deviendrait si GRenard n'etait pas la.
Bon courage bourgi220
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 2 août 2004 à 05:04
Mauvais, si tu veux que je réponde et te donner de bonnes suggestions, tu vas commencer par modifier ton code en enlevant les surplus inutiles (include, mysql...) et fournir dans des variables constantes les valeurs de test de réception...
Si tu fais ca, je regarderai !
Dr_J_Dre
Messages postés5Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention 2 août 2004 2 août 2004 à 03:07
excuse moi mais t'affecte quelle valeur à la variable $where .... par défaut c'est zéro?
16 mars 2011 à 13:46
22 juil. 2008 à 20:57
21 juil. 2008 à 10:57
Merci pour ton bout de code corrigé, il est parfait, impect et cela m'a vraiment aidé pour mes systèmes de paginations.
Mile fois merci ton code fonctionne à merveille chez moi
31 août 2006 à 00:34
J'ai beau chercher pourquoi ce script ne marche pas et je ne vois rien, voilà le problème :
J'affiche bien la première page de ma requete, j'y trouve bien le bon nombre d'enregistrements, tous les liens apparaissent bien mais impossible d'afficher les autres pages.
L'url des liens semble bonne .../pagination.php?where=2 ou 3, etc. mais je reste sur la première page ?
J'ai testé plusieurs scripts de pagination, ça parait enfantin au départ et pourtant ça coince toujours à ce niveau là. Y a un truc que je pige pas !
Un tutorial sur le sujet serait le bienvenu !
Merci de votre aide.
21 juil. 2006 à 14:40
21 juil. 2006 à 13:49
$news_par_pages = 15 ; par exemple
vous comprendrez ;)
ce que j'ai pas compris c pourquoi à la première page il m'affiche tous les résultats????? ôô
19 juin 2006 à 21:30
<?php
// Cette pagination est présente sur la page pagination.php (c'est un exemple bien sûr...)
// On se connecte à la base de données via une include (modifiez le nom du fichier)
include('includes/data.inc.php');
// Il faut connaitre le nombre total de news (par exemple) que vous avez...
$req1 = mysql_query('SELECT COUNT(*) FROM news');
$nbnews = mysql_fetch_row($req1);
$nbnews = $nbnews[0];
//Le nombre de news que l'on veut par page
$news_par_pages = 1;
//On fait donc la moyenne pour savoir combien il y aura de pages
$moy = $nbnews/$news_par_pages;
//Ensuite, il nous faut un chiffre rond, et pour cela il y a une fonction formidable qui
// arrondi un nombre décimal au nombre entier suppérieur, ceil() !
$sit = ceil($moy);
//Il faut maintenant afficher vos pages...
//Ici, pour avoir un max de clarté j'ai mis le minimum d'html, mais rien ne vous empeche
//de mettre des tableaux, des couleurs etc...
if (!($where)) // Si $where n'existe pas il est égal à un
{
$where=1;
}
//La formule (magique, si vous voulez)
$min = ($where-1) * $news_par_pages;
$req2 = mysql_query("SELECT * FROM news LIMIT $min,$news_par_pages");
while ($ligne=mysql_fetch_array($req2))
{
$contenu= nl2br($ligne['contenu']);
echo"$contenu
";
}
echo '
';
$start = 1;
//Si $where est strictement plus grand que 1, alors il faut un bouton précédent
if ($where>=2)
{
$pre = $where-1;
echo " < ";
}
while ($start < $where)
{
echo "";
echo $start++;
echo " ";
}
echo " $where ";
$nwhere =$where+1;
while ($nwhere <= $sit)
{
echo "";
echo $nwhere++;
echo " ";
}
if ($where < $sit)
{
$sui= $where+1;
echo " > ";
}
?>
++++ et bonne soirée
5 août 2004 à 12:34
alors avant de critiquer lis au moins ce que j'ai écrit!
quand je mets "include('votreconnection.php');" je vois pas en quoi ca te gene... je dis simplement qu'il faut se connecter à la base de donnée... puis je mets
$req=mysql_query("SELECT * FROM news"); et je dis que news est un exemple et quil faut le remplacer par la table voulue!
alors je crois que le débat est clos... t'as dit tout simplement n'importe quoi!
2 août 2004 à 16:44
Si je te copiais collais des sources de mon site juste pour dire "regarder c'est comme ca que ca marche" avec des 20aine d'include que tu n'as pas le fichier, des connexion dont tu n'as pas la base de données... ca serait tout simplement nul. Avant de poster un code, il faut s'assurer que celui-ci fonctionne simplement en l'executant ! C'est la moindre des choses ! Sinon c'est chiant, il faut tout vider le code des choses inutiles.
2 août 2004 à 15:16
GRenard> peut-être que ma présentation n'est pas parfaite mais je pense que il y a une manière plus sympathique de le dire...
Et puis je voudrais pas parraître désagréable mais: " si tu veux que je réponde et te donner de bonnes suggestions, tu vas commencer par modifier ton code en enlevant les surplus inutiles (include, mysql...) et fournir dans des variables constantes les valeurs de test de réception...
Si tu fais ca, je regarderai !", tu sais moi j'ai mis cette source pour ceux qui en ont besoin... après ceux qui veulent me donner des conseils, bin c'est bien sympas et je les en remercie mais ceux à qui il faut lècher les bottes pour soutirer qques conseils ils peuvent franchement aller se faire voir...
allé a++ sans rancune
2 août 2004 à 12:48
pas mal comme code, ya des commentaires meme si au niveau presentation c'est pas parfait. Par contre dire que tout tourne autour de ceil, c'est un peu exagerer. Pour arrondir une valeur, y a d'autres possibilites.
Mais bon, c'est pour DEBUTANT, donc soyons indulgeants, n'est-ce pas Jean-Sebastien. Au fait tu pourras corriger mes devoirs qd aura 5 mn. Qu'est-ce qu'on deviendrait si GRenard n'etait pas la.
Bon courage bourgi220
2 août 2004 à 05:04
Si tu fais ca, je regarderai !
2 août 2004 à 03:07