Je me souviens de l'époque où j'ai commencé à coder en PHP et MySQL il y a des années. J'étais enthousiaste à l'idée de recevoir pour la première fois des informations d'une base de données dans un navigateur Web..
Pour ceux qui possédaient peu de connaissances en matière de base de données et de programmation, le fait de voir ces rangées de tableaux s'afficher à l'écran en fonction du code que j'avais écrit (d'accord, j'ai donc copié un exemple tiré d'un livre - ne nous coupons pas les cheveux en quatre) m'a procuré un high triomphant. Je n’avais peut-être pas encore compris toute la magie du travail à l’époque, mais ce premier succès m’a incité à entreprendre de plus grands projets..
Bien que mon niveau d’exubérance vis-à-vis des bases de données ne soit pas le même qu’il était autrefois,
depuis ma première rencontre avec PHP et MySQL, «Hello World», je suis devenu accro
sur le pouvoir de rendre les choses simples et faciles à utiliser.
En tant que développeur, je suis constamment confronté à un problème: prendre un grand nombre d'informations et le rendre facile à digérer. Qu'il s'agisse d'une liste de clients d'une grande entreprise ou d'un catalogue MP3 personnel, il peut être décourageant de s'asseoir et de regarder des lignes sur des lignes sur des lignes de données.
et frustrant. Que peut faire un bon développeur? Paginer!
Si vous cherchez une solution rapide, il existe une grande collection de scripts de pagination et d’aides sur Envato Market..
Cette classe de pagination PHP est vraiment utile. Il peut être implémenté avec n’importe quel moteur de base de données pris en charge par PHP, il est très facile à personnaliser et à implémenter, prend en charge deux écrans par défaut, possède des schémas de conception multicolores, etc..
La pagination est essentiellement le processus consistant à prendre un ensemble de résultats et à se répandre.
les sur des pages pour les rendre plus faciles à voir.
J'ai réalisé très tôt que si j'avais 5000 rangées d'informations à afficher non seulement
serait-ce un mal de tête pour quelqu'un d'essayer de lire, mais la plupart des navigateurs prendraient
une éternité Internet (c'est-à-dire plus de cinq secondes environ) pour l'afficher.
Pour résoudre ce problème, je coderais diverses instructions SQL afin d’extraire des blocs de données, et si j’étais
de bonne humeur, je pourrais même ajouter quelques boutons "Suivant" et "Précédent".
Après un certain temps, il faut déposer ce code dans chaque projet similaire et personnaliser
pour s'adapter vieilli. Vite. Et comme tout bon développeur le sait, la paresse engendre l'inventivité
ou quelque chose comme ça. Alors un jour, je me suis assis et j'ai décidé de créer un simple,
classe PHP flexible et facile à utiliser qui ferait automatiquement le sale boulot pour
moi.
Un mot rapide sur moi et les cours PHP. Je ne suis pas un whiz orienté objet. En fait, je peine
jamais utiliser les trucs. Mais après avoir lu quelques exemples de POO et des tutoriels, et quelques
De simples exemples d’essais et d’erreur, j’ai décidé de l’analyser et vous savez quoi?
Cela fonctionne parfaitement pour la pagination. Le code utilisé ici est écrit en PHP 4 mais sera
travailler en PHP 5.
Je dois aimer MySQL. Aucune infraction aux autres systèmes de base de données là-bas, mais pour
moi, tout ce dont j'ai besoin, c'est MySQL. Et une grande fonctionnalité de MySQL est qu’ils vous en donnent
exemples de bases de données gratuits à utiliser à l'adresse http://dev.mysql.com/doc/#sampledb.
Pour mes exemples, je vais utiliser la base de données mondiale (~ 90k compressée) qui contient plus de
4000 enregistrements pour jouer, mais la beauté du script PHP que nous allons créer est
qu'il peut être utilisé avec n'importe quelle base de données. Maintenant, je pense que nous pouvons tous convenir que si nous décidions
ne pas paginer nos résultats que nous nous retrouverions avec une très longue et difficile à manier
résultats comme ceux-ci:
(cliquez pour agrandir, image ridiculement longue ~ 338k)
Alors, commençons à décomposer nos données en fichiers faciles à digérer comme ceci:
Beau n'est-ce pas? Une fois que vous déposez la classe de pagination dans votre code, vous pouvez
transformer rapidement et facilement un vaste ensemble de données en pages faciles à naviguer avec
juste quelques lignes de code. Vraiment.
Cet exemple sera composé de deux scripts, la classe de pagination réutilisable et le fichier d'index qui affichera les éléments de la table et les contrôles..
La classe de pagination n'aura que deux méthodes et le constructeur, nous le construirons progressivement en expliquant chaque étape à mesure que nous avancons.
Cette définition ne définit que les variables de membre obligatoires de la pagination, puisqu'il s'agit d'une classe d'assistance et qu'elle est destinée à la pagination uniquement. Elle repose sur une connexion valide au serveur MySQL et une requête déjà définie à laquelle nous ajouterons les paramètres nécessaires à la pagination des résultats. Nous allons commencer par la méthode constructeur.
_conn = $ conn; $ this -> _ query = $ query; $ rs = $ this -> _ conn-> query ($ this -> _ query); $ this -> _ total = $ rs-> num_rows;
Assez simple non? Cette méthode définit uniquement la connexion à la base de données de l'objet et la requête nécessaire. Après avoir calculé le nombre total de lignes extraites par cette requête, sans limite ni paramètres ignorés, ce total est nécessaire pour créer les liens du paginateur..
Notez que par souci de simplicité, nous ne faisons pas de vérification d'erreur ni de validation des paramètres donnés, mais dans une application réelle, cette vérification sera nécessaire..
Récupération des résultats
Créons maintenant la méthode qui paginera les données et renverra les résultats.
_limit = $ limit; $ this -> _ page = $ page; if ($ this -> _ limit == 'all') $ query = $ this -> _ query; else $ query = $ this -> _ requête. "LIMIT". (($ ceci -> _ page - 1) * $ ceci -> _ limite). ", $ this -> _ limit"; $ rs = $ this -> _ conn-> query ($ query); while ($ rangée = $ rs-> fetch_assoc ()) $ résultats [] = $ rangée; $ resultat = new stdClass (); $ result-> page = $ this -> _ page; $ résultat-> limite = $ ceci -> _ limite; $ résultat-> total = $ ceci -> _ total; $ résultat-> data = $ résultats; return $ result;Analysons cette étape à la fois. Nous définissons d’abord les paramètres de limite et de page, qui sont réglés par défaut à 10 et 1 respectivement. Ensuite, nous vérifions si l’utilisateur a besoin d’un nombre donné de lignes ou de la totalité d’entre elles, en nous basant sur ceci et sur le paramètre de page que nous avons défini.
LIMITE
paramètre de la requête, le "- 1" de la page prend en compte le fait que nous démarrons les pages en 1 au lieu de 0.Après cela, nous évaluons simplement la requête et obtenons les résultats. Enfin, nous créons un nouvel objet de résultat contenant les paramètres de limite, de page et de total de la requête exécutée, ainsi que les données de chacune des lignes extraites..
Affichage des liens de pagination
Maintenant, écrivons la méthode utilisée pour obtenir les liens de pagination.
_limit == 'all') return "; $ last = ceil ($ this -> _ total / $ this -> _ limite); $ start = (($ this -> _ page - $ liens)> 0)? $ this -> _ page - $ links: 1; $ end = (($ this -> _ page + $ links) < $last ) ? $this->_page + $ links: $ last; $ html = '
Ceci est une méthode assez longue, quelque chose comme 34 lignes de code, expliquons maintenant ce qui se passe dans cette méthode.
C'est tout ce qu'il y a dans Paginator.class, bien sûr, nous pourrions ajouter des paramètres pour la connexion à la base de données, la limite, la page, la requête et le total des paramètres, mais pour des raisons de simplicité, nous allons le garder comme suit.
Nous allons maintenant créer le fichier responsable de l’utilisation de la classe Paginator et de l’affichage des données; laissez-moi d’abord vous montrer le code HTML de base..
Pagination PHP Pagination PHP
Ville Pays Continent Région