Accueil > > > PAGINATION SIMPLE => TUTORIAL
PAGINATION SIMPLE => TUTORIAL
Information sur la source
Description
Voici un système de pagination simple et détaillé ( explications jointe )
Source
- // créer votre bdd contenant cette table pour tester la pagination
-
- CREATE TABLE `news` (
- `id` int(10) unsigned NOT NULL auto_increment,
- `titre` tinytext NOT NULL,
- `texte` text NOT NULL,
- `date` datetime NOT NULL default '0000-00-00 00:00:00',
- PRIMARY KEY (`id`)
- ) TYPE=MyISAM AUTO_INCREMENT=18 ;
-
- #
- # Contenu de la table `news`
- #
-
- INSERT INTO `news` VALUES (7, 'Musique', 'Alors ce matin j\'ai reçu 3 cédés que j\'avais commandé sur priceminister.\r\nJ\'écoute, bon ça à l\'air sympa, mais je suis pas transcendé non plus.\r\n\r\nEn tout cas vive le dub :]', '2004-01-20 12:33:59');
- INSERT INTO `news` VALUES (8, 'Histoire drôle', 'C\'est paf le chien qui..\r\n\r\nnon, rien.', '2004-01-20 17:29:10');
- INSERT INTO `news` VALUES (9, 'Recrudescence d\'ours', 'C\'est un fait indéniable: les ours sont de plus en plus nombreux. Certains occupent même des postes clé dans l\'administration de notre pays, et nombreux sont ceux qui possèdent une résidence secondaire sur la côte d\'azur, telle le loyal membre du gouvernement russe et sa datcha au beau milieu de la forêt de Sibérie. Il apparait même, selon un récent sondage, que 45% des truites de montagne seraient pour l\'élection d\'un ours à la présidence en 2007.\r\nCela n\'est cependant pas du goût de tout le monde, comme nous le fait remarquer Amira Bzzbzz, la représentante de la Confédération des Abeilles Unies: "ben voyons, un président ours! et qui est ce qui va encore faire du miel à l\'oeil?! c\'est nous!". Situation donc tendue à l\'approche des élections qui seront, soyons-en sûrs, décisives.', '2004-01-20 17:30:59');
- INSERT INTO `news` VALUES (10, 'encore un test :)', 'c\'est nickel ça fonctionne :D', '2004-07-28 18:21:31');
- INSERT INTO `news` VALUES (11, 'c trop fort ça marche', 'ben voila le texte c trop cool', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (12, 'fbvddfg', 'gdsfgfdgfdgfds', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (13, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (14, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (15, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (16, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
- INSERT INTO `news` VALUES (17, 'gfdgdsfgfds', 'gfdsgfdgfdsdfg', '0000-00-00 00:00:00');
-
- // le code :)
- <?php
- //partie de connexion a la bdd
- $serveur = "localhost";
- $login = "root";
- $pass = "";
- $connexion = mysql_connect( $serveur, $login, $pass );
- mysql_select_db( "weblog", $connexion );
- //********** Fin de la partie connexion **********\\
- $nbParPage = 5;
- //on effectue la requète sur l'objet que l'on souhaite paginer ( ici des news )
- $req1=mysql_query("SELECT * FROM news");
- $nbNews=mysql_numrows($req1);
- //$nbnews=$nbnews[0];
- echo "il y a $nbNews";
-
- //On calcule le nombre de numéro à afficher en fonction du nombre de news par
- //page en arrondissant au nombre supérieur grace a la fonction ceil.
- $moy= ceil($nbNews/$nbParPage);
- echo "<br>et il y aura $moy page<br>";
- //*********** Partie concernant le "bouton" précedent ***********\\
- //on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
- //la fonction Suivant / précédent
- if ($moy>=2)
- {
- //on vérifie l'éxistence de la variable page avant les vérifications
- if (isset($_GET['page']))
- {
- //si $_GET['page'] = 1 alors on est a la première page et donc pas besoins
- //de lien vers la précédente qui n'éxiste pas
- if ($_GET['page']==1){echo "Precedent ";}
- //sinon on met le lien en ajoutant +1 page a la page courante
- else
- {
- echo "<a href=\"pagination.php?page=".($_GET['page']-1)."\">Precedent</a> ";
- }
- }
- else{echo "Precedent ";}
- }
- //*********** fin de la partie concernant le "bouton" précedent ***********\\
-
- //prenons un exemple concret :
- // nous avons 10 news dans la base
- // a ce moment nous savons donc qu'il y aura 2 page :
- // $nbNews = 10 divisé par 5 ( 5 news par page ) = 2 pages.
- // on peut déja afficher les numéros :
- // on effectue une boucle tant qu'il y a des pages on ajoute un lien
- for ($i=0;$i<$moy;$i++)
- {
- // on ajoute 1 a $i pour afficher 1-2-3-... au lieu de 0-1-2-3-...
- echo "<a href=\"pagination.php?page=".($i+1)."\"> Page ".($i+1)."</a> ";
- }
-
- //*********** Partie concernant le "bouton" suivant ***********\\
- //on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
- //la fonction Suivant / précédent
- if ($moy>=2)
- {
- //on vérifie l'éxistence de la variable page avant les vérifications
- if (isset($_GET['page']))
- {
- //si $_GET['page'] = $moy alors on est a la dernière page et donc pas besoins
- //de lien vers la suivante qui n'éxiste pas
- if ($_GET['page']==$moy){echo " Suivant";}
- //sinon on met le lien en ajoutant +1 page a la page courante
- else
- {
- echo " <a href=\"pagination.php?page=".($_GET['page']+1)."\">Suivant</a>";
- }
- }
- else{echo "<a href=\"pagination.php?page=1\">Suivant</a>";}
- }
- //*********** fin de la partie concernant le "bouton" Suivant ***********\\
-
- echo "<br>La page courante est :".$_GET['page'];
- ?>
// créer votre bdd contenant cette table pour tester la pagination
CREATE TABLE `news` (
`id` int(10) unsigned NOT NULL auto_increment,
`titre` tinytext NOT NULL,
`texte` text NOT NULL,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=18 ;
#
# Contenu de la table `news`
#
INSERT INTO `news` VALUES (7, 'Musique', 'Alors ce matin j\'ai reçu 3 cédés que j\'avais commandé sur priceminister.\r\nJ\'écoute, bon ça à l\'air sympa, mais je suis pas transcendé non plus.\r\n\r\nEn tout cas vive le dub :]', '2004-01-20 12:33:59');
INSERT INTO `news` VALUES (8, 'Histoire drôle', 'C\'est paf le chien qui..\r\n\r\nnon, rien.', '2004-01-20 17:29:10');
INSERT INTO `news` VALUES (9, 'Recrudescence d\'ours', 'C\'est un fait indéniable: les ours sont de plus en plus nombreux. Certains occupent même des postes clé dans l\'administration de notre pays, et nombreux sont ceux qui possèdent une résidence secondaire sur la côte d\'azur, telle le loyal membre du gouvernement russe et sa datcha au beau milieu de la forêt de Sibérie. Il apparait même, selon un récent sondage, que 45% des truites de montagne seraient pour l\'élection d\'un ours à la présidence en 2007.\r\nCela n\'est cependant pas du goût de tout le monde, comme nous le fait remarquer Amira Bzzbzz, la représentante de la Confédération des Abeilles Unies: "ben voyons, un président ours! et qui est ce qui va encore faire du miel à l\'oeil?! c\'est nous!". Situation donc tendue à l\'approche des élections qui seront, soyons-en sûrs, décisives.', '2004-01-20 17:30:59');
INSERT INTO `news` VALUES (10, 'encore un test :)', 'c\'est nickel ça fonctionne :D', '2004-07-28 18:21:31');
INSERT INTO `news` VALUES (11, 'c trop fort ça marche', 'ben voila le texte c trop cool', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (12, 'fbvddfg', 'gdsfgfdgfdgfds', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (13, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (14, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (15, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (16, 'gfdsgfdsgfds', 'fdsgfdsgdfgfdsgdsfgdsf', '0000-00-00 00:00:00');
INSERT INTO `news` VALUES (17, 'gfdgdsfgfds', 'gfdsgfdgfdsdfg', '0000-00-00 00:00:00');
// le code :)
<?php
//partie de connexion a la bdd
$serveur = "localhost";
$login = "root";
$pass = "";
$connexion = mysql_connect( $serveur, $login, $pass );
mysql_select_db( "weblog", $connexion );
//********** Fin de la partie connexion **********\\
$nbParPage = 5;
//on effectue la requète sur l'objet que l'on souhaite paginer ( ici des news )
$req1=mysql_query("SELECT * FROM news");
$nbNews=mysql_numrows($req1);
//$nbnews=$nbnews[0];
echo "il y a $nbNews";
//On calcule le nombre de numéro à afficher en fonction du nombre de news par
//page en arrondissant au nombre supérieur grace a la fonction ceil.
$moy= ceil($nbNews/$nbParPage);
echo "<br>et il y aura $moy page<br>";
//*********** Partie concernant le "bouton" précedent ***********\\
//on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
//la fonction Suivant / précédent
if ($moy>=2)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['page']))
{
//si $_GET['page'] = 1 alors on est a la première page et donc pas besoins
//de lien vers la précédente qui n'éxiste pas
if ($_GET['page']==1){echo "Precedent ";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo "<a href=\"pagination.php?page=".($_GET['page']-1)."\">Precedent</a> ";
}
}
else{echo "Precedent ";}
}
//*********** fin de la partie concernant le "bouton" précedent ***********\\
//prenons un exemple concret :
// nous avons 10 news dans la base
// a ce moment nous savons donc qu'il y aura 2 page :
// $nbNews = 10 divisé par 5 ( 5 news par page ) = 2 pages.
// on peut déja afficher les numéros :
// on effectue une boucle tant qu'il y a des pages on ajoute un lien
for ($i=0;$i<$moy;$i++)
{
// on ajoute 1 a $i pour afficher 1-2-3-... au lieu de 0-1-2-3-...
echo "<a href=\"pagination.php?page=".($i+1)."\"> Page ".($i+1)."</a> ";
}
//*********** Partie concernant le "bouton" suivant ***********\\
//on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
//la fonction Suivant / précédent
if ($moy>=2)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['page']))
{
//si $_GET['page'] = $moy alors on est a la dernière page et donc pas besoins
//de lien vers la suivante qui n'éxiste pas
if ($_GET['page']==$moy){echo " Suivant";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo " <a href=\"pagination.php?page=".($_GET['page']+1)."\">Suivant</a>";
}
}
else{echo "<a href=\"pagination.php?page=1\">Suivant</a>";}
}
//*********** fin de la partie concernant le "bouton" Suivant ***********\\
echo "<br>La page courante est :".$_GET['page'];
?>
Conclusion
Voila vous pouvez tester, et me faire part de vos commenttaires pour la partie affichage des news ou du contenu il en va de tout a chacun cette source est ici pour servir d'explication
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|