begin process at 2012 02 11 16:33:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > PAGINATION TRÈS SIMPLE: PAGE SUIVANTE, PRÉCÉDENTE, MARQUAGE DE LA PAGE OÙ L'ON EST

PAGINATION TRÈS SIMPLE: PAGE SUIVANTE, PRÉCÉDENTE, MARQUAGE DE LA PAGE OÙ L'ON EST


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :01/08/2004 Date de mise à jour :01/08/2004 18:13:47 Vu :8 844

Auteur : bourgi220

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Ne vous cassez plus la tête pour faire une pagination... J'ai trouvé un moyen, qui existait déjà peut etre, mais en tous cas j'ai tout trouvé dans ma tête... lol. Donc c'est un code qui vous permet de paginer vos données présentes dans une base mysql...
Au fait je vous préviens, je code dans le blocnote alors pour certains je code comme un pti cochon...

Source

  • <?php
  • //Cette pagination est présente sur la page votrepage.php (c'est un exemple bien sûr...)
  • include('votreconnection.php');
  • //il faut connaitre le nombre total de news (par exemple) que vous avez...
  • $req1=mysql_query("SELECT COUNT(id) FROM news");
  • $nbnews=mysql_fetch_row($req1);
  • $nbnews=$nbnews[0];
  • //dans mon exemple, on va dire qu'on veut afficher 10 news par page...
  • //On fait donc la moyenne pour savoir combien il y aura de page
  • $moy=$nbnews/10;
  • //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!
  • $sit=ceil($moy);
  • //Il faut maintenant afficher vos pages...
  • //ps: 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...
  • //la formule...
  • $min=($where-1)*10;
  • $req2=mysql_query("SELECT * FROM news LIMIT $min , 10 ");
  • while ($ligne=mysql_fetch_array($req2))
  • {
  • $contenu=$ligne['contenu'];
  • echo"$contenu<br>";
  • }
  • //si where est égal à 2, vous êtes sur la page 2.. Donc là je dis que si
  • //$where n'existe pas, alors il est égal à 1
  • if (!($where))
  • {
  • $where=1;
  • }
  • $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"
  • <a href=votrepage.php?where=$pre><<</a> |
  • ";
  • }
  • while ($start<$where)
  • {
  • echo"<a href=votrepage.php?where=$start>";
  • echo $start++;
  • echo"</a> | ";
  • }
  • echo"
  • <span style=\"background-color: #FFFF00\">$where</span> |
  • ";
  • $nwhere=$where+1;
  • while ($nwhere<=$sit)
  • {
  • echo"<a href=votrepage.php?where=$nwhere>";
  • echo $nwhere++;
  • echo"</a> | ";
  • }
  • if ($where<$sit)
  • {
  • $sui=$where+1;
  • echo"<a href=votrepage.php?where=$sui>>></a>";
  • }
  • //ce code a été écrit par bourgi220 et testé par bourgi220: il fonctionne correctement
  • ?>
<?php

//Cette pagination est présente sur la page votrepage.php (c'est un exemple bien sûr...)

include('votreconnection.php');

//il faut connaitre le nombre total de news (par exemple) que vous avez...
$req1=mysql_query("SELECT COUNT(id) FROM news");
$nbnews=mysql_fetch_row($req1);
$nbnews=$nbnews[0];

//dans mon exemple, on va dire qu'on veut afficher 10 news par page...
//On fait donc la moyenne pour savoir combien il y aura de page
$moy=$nbnews/10;

//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!
$sit=ceil($moy);

//Il faut maintenant afficher vos pages...
//ps: 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...

//la formule...
$min=($where-1)*10;

$req2=mysql_query("SELECT * FROM news LIMIT $min , 10 ");

while ($ligne=mysql_fetch_array($req2))
{

$contenu=$ligne['contenu'];

echo"$contenu<br>";

}

//si where est égal à 2, vous êtes sur la page 2.. Donc là je dis que si 
//$where n'existe pas, alors il est égal à 1
if (!($where))
{
$where=1;
}

$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"
<a href=votrepage.php?where=$pre><<</a> | 
";

}

while ($start<$where)
{

echo"<a href=votrepage.php?where=$start>";
echo $start++;
echo"</a> | ";

}

echo"
<span style=\"background-color: #FFFF00\">$where</span> | 
";

$nwhere=$where+1;

while ($nwhere<=$sit)
{

echo"<a href=votrepage.php?where=$nwhere>";
echo $nwhere++;
echo"</a> | ";

}

if ($where<$sit)
{

$sui=$where+1;

echo"<a href=votrepage.php?where=$sui>>></a>";

}

//ce code a été écrit par bourgi220 et testé par bourgi220: il fonctionne correctement

?>

 Conclusion

Tout ça a été possible grâce à la fonction ceil que j'ai découverte sur ce site... en fait toute cette pagination tourne autour de ça... Maintenant j'attends vos critiques, suggestions, appréciations ou questions... lol a++ et bon code à tous!


 Historique

01 août 2004 18:13:47 :

 Sources de la même categorie

Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette

Commentaires et avis

Commentaire de Dr_J_Dre le 02/08/2004 03:07:01

excuse moi mais t'affecte quelle valeur à la variable $where .... par défaut c'est zéro?

Commentaire de GRenard le 02/08/2004 05:04:25

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 !

Commentaire de willinfeo le 02/08/2004 12:48:59

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

Commentaire de bourgi220 le 02/08/2004 15:16:26

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

Commentaire de GRenard le 02/08/2004 16:44:45

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.

Commentaire de bourgi220 le 05/08/2004 12:34:57

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!

Commentaire de Jashugal le 19/06/2006 21:30:45

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<br>";
   }
  
   echo '<br />';

   $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 "<a href=pagination.php?where=$pre> <</a> ";
    
  }
    
   while ($start < $where)
   {
    
   echo "<a href=pagination.php?where=$start>";
   echo $start++;
   echo "</a>  ";
  }
    
   echo "<strong>$where</strong> ";
    
   $nwhere=$where+1;
    
   while ($nwhere <= $sit)
   {
    
   echo "<a href=pagination.php?where=$nwhere>";
   echo $nwhere++;
   echo "</a>  ";
  }

if ($where < $sit)
{

$sui= $where+1;
  
echo "<a href=pagination.php?where=$sui> > </a>";

  }
?>

++++ et bonne soirée

Commentaire de rakizm le 21/07/2006 13:49:53

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????? ôô

Commentaire de rakizm le 21/07/2006 14:40:34

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.

Commentaire de gigaprint le 31/08/2006 00:34:21

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.

Commentaire de marial le 21/07/2008 10:57:50

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

Commentaire de Jashugal le 22/07/2008 20:57:04

Ben, de rien c'est fait pour : )

Commentaire de begueradj le 16/03/2011 13:46:59

ce code est ani-islam

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales