Pagination résultats MySQL avec PHP dispose d'un certain nombre d'avantages . Tout d'abord, il accélère la requête MySQL, car elle ne renvoie qu'un petit nombre de résultats . Deuxièmement, elle améliore l'expérience de l' utilisateur , car il montre un nombre gérable de résultats par page. Troisièmement, il économise la bande passante en n'envoyant pas les résultats inutiles. Pour ces raisons , de nombreux sites , y compris Google , Yahoo et WordPress , ont adopté son utilisation. Pour utiliser MySQL pagination , vous devez utiliser la commande SQL " LIMIT " et les paramètres "GET" dans l'URL. Instructions 1 créer une table " répertoire " dans votre base de données MySQL avec les colonnes "id ", " nom " et " téléphone " . Remplir le tableau avec quelques entrées . Voici les requêtes SQL pour créer et peupler la table, respectivement : CREATE TABLE répertoire ( `id` int ( 11) NOT NULL AUTO_INCREMENT, `nom` varchar ( 100) NOT NULL, ` téléphonique ` varchar ( 20) NOT NULL, PRIMARY KEY ( `id` ) ) ; INSERT INTO répertoire ( ` nom `, ` téléphoniques `) VALUES (' Jack' , '201 - 379-5406 '), ( ' Jake ' , '331 - 123-5196 '), ( 'John' , '222 - 342-3250 '); 2 Créer un nouveau fichier " pagination.php " et ouvrez-le avec un texte éditeur tel que Notepad . Écrire un segment de code qui se connecte à votre serveur MySQL , en utilisant la fonction " mysql_connect " de PHP, et sélectionne la base de données contenant la table " répertoire " , en utilisant la fonction " mysql_select_db " de PHP. Voici un exemple : mysql_connect ( 'localhost' , 'admin' , 'password' ) ; mysql_select_db ('test' ) ; Remplacer les quatre cordes avec votre nom d'hôte, nom d'utilisateur, mot de passe et base de données, respectivement . 3 Ecrire un segment de code qui définit le "$ RowsPerPage " variable pour le nombre de lignes à afficher par page , définit «$ currentPage " à la page demandée via " $ _GET [ 'page' ]" ou zéro si aucune et définit «$ offset" à l'offset à partir de laquelle récupérer les lignes à partir de la base , calculée en soustrayant un de "$ currentPage " et en multipliant par " $ RowsPerPage . " Voici un exemple : $ RowsPerPage = 5; $ currentPage = (( isset ($ _GET [ 'page' ] ) && $ _GET [ 'page' ]> 0) ? (int) $ _GET [ 'page' ]: 1); $ offset = ($ currentPage -1) * $ RowsPerPage ; 4 écrire une ligne de code qui récupère "$ " RowsPerPage lignes à partir de l'offset défini dans « $ offset " de la table " répertoire " en exécutant une requête "SELECT" via la fonction " mysql_query " de PHP et enregistre le résultat dans une nouvelle variable. Voici le code : $ result = mysql_query ( 'SELECT * FROM répertoire LIMIT $ offset ', ' $ RowsPerPage . . . ) ; 5 Ecrire un " tout " boucle qui récupère les lignes de l'ensemble des résultats de la requête , " $ result, " en utilisant la fonction " mysql_fetch_assoc " de PHP et les affiche sous forme de liste ou une table. Voici un exemple : echo ' ID | Nom | Numéro de téléphone | < ;/tr> " ; while ( $ row = mysql_fetch_assoc ($ result) ) { echo ' ». $ row [ 'id' ] . '< /td> | ». $ row [' nom '] . '< /td> | ». $ row [' téléphone '] . '< /td> | '; } echo ' '; 6 Ecrire un segment de code qui récupère le nombre d'entrées dans la table en exécutant une requête "COUNT " via la fonction " mysql_query " de PHP , calcule le nombre de pages en divisant le nombre d'entrées par le "$ RowsPerPage " variable et arrondi vers le haut et enregistre le résultat dans un variable " $ totalPages ». Voici le code : $ result = mysql_query ( 'SELECT COUNT (*) AS comptage à partir du répertoire '); $ row = mysql_fetch_assoc ( $ result); $ totalPages = ceil ( $ row [ 'count' ] /$ RowsPerPage ) ; 7 écrire deux " if" : celui qui affiche un lien " page précédente " et celle qui affiche un "Next » lien, si la page correspondante existe ( c'est à dire si " page $ currentPage " est supérieur à un pour " page précédente " et si " $ currentPage " est supérieur à " $ totalPages " pour" page suivante " ) . Voici le code : if ($ currentPage > 1) { echo '
|
|