Paginating MySQL resultater med PHP har en række fordele. Først det fremskynder MySQL query , da det kun returnerer et lille antal resultater. For det andet , det forbedrer brugerens oplevelse , da det viser et overskueligt antal resultater per side . For det tredje , det sparer båndbredde ved ikke at sende unødvendige resultater. Af disse grunde har mange steder , herunder Google, Yahoo og WordPress vedtog sin brug. For at bruge MySQL paginering , skal du bruge SQL " LIMIT " kommando , og "få" parametrene i webadressen. Instruktioner
1
Oprette en tabel " telefonbog " i din MySQL-database med kolonner "id ", "navn" og " telefon ". Befolker tabellen med et par poster. Her er de SQL-forespørgsler til at skabe og befolker tabellen , henholdsvis : Hej
CREATE TABLE telefonbog ( ` id` int (11) NOT NULL AUTO_INCREMENT , ` navn ` varchar (100) NOT NULL , ` telefon ` varchar ( 20) NOT NULL, PRIMARY KEY ( ` id` )),
INSERT INTO telefonbog ( ` navn `, ` telefon ` ) VALUES ( ' Jack' , '201 - 379 til 5406 ' ) , ( ' Jake ' , '331 - 123 til 5196 «) ( ' John ' , '222 - 342 til 3250 ');
2
Opret en ny fil " pagination.php ", og åbne den med en tekst editor såsom Notesblok. Skriv et segment af kode, der sluttes til din MySQL server , ved hjælp af PHP er " mysql_connect "-funktionen , og vælger den database , der indeholder " telefonbog "-tabellen , ved hjælp af PHP er " mysql_select_db "-funktion. Her er et eksempel : Hej
mysql_connect ( ' localhost ', ' admin' , 'password ');
mysql_select_db ( 'test ');
Udskift de fire strygere med dit værtsnavn , brugernavn, password og database , hhv.
3
Skriv et segment af kode, der sætter variablen " $ rowsPerPage " til antallet af rækker , der skal vises per side , sætter "$ currentPage " til den ønskede side via " $ _GET [' side '] " eller nul, hvis ingen og sætter "$ offset " til den forskydning , hvorfra man kan hente rækker fra databasen , beregnes ved at trække en fra "$ currentPage " og multiplicere med "$ rowsPerPage ". Her er et eksempel : Hej
$ rowsPerPage = 5;
$ currentPage = (( isset ( $ _GET [' side '] ) && $ _GET [' side '] > 0) ? ( int ) $ _GET [' side '] : 1);
$ offset = ( $ currentPage -1) * $ rowsPerPage ,
4
Skriv en linje kode , der henter "$ rowsPerPage " rækker startende fra offset indstillet i "$ offset" fra tabellen " telefonbog " ved at udføre en "SELECT " forespørgslen via PHP er " mysql_query " funktion og gemmer resultatet i en ny variabel. Her er koden : Hej
$ result = mysql_query ( "SELECT * FROM telefonbog LIMIT '$ offset ', ' $ rowsPerPage . . . )
5
Skriv en " mens " loop , der henter de rækker fra forespørgslens resultatsæt , " $ resultat," med PHP er " mysql_fetch_assoc "-funktionen og viser dem som en liste eller tabel. Her er et eksempel : Hej
echo '
ID | Navn | Telefonnummer | < ;/tr> ";
while ( $ row = mysql_fetch_assoc ( $ result )) {
echo '
". $ row [' id '] . '< /td> | ' . $ row [ 'navn' ] . '< /td> | ' . $ row [' telefon' ] . '< /td> < /tr> "; } echo' |
";
6
Skriv et segment af kode der henter antallet af poster i tabellen ved at indgå en " count" forespørgslen via PHP er " mysql_query "-funktionen beregner antal sider ved at dividere antallet af poster med " $ rowsPerPage " variabel og afrunding opad og gemmer resultatet i en variabel "$ totalPages ." Her er koden : Hej
$ result = mysql_query ( "SELECT COUNT (*) AS count FROM telefonbog ');
$ row = mysql_fetch_assoc ( $ result ) ;
$ totalPages = ceil ( $ row [' count '] /$ rowsPerPage )
7
Skriv to "hvis" udsagn : en, der viser en " Forrige side " linket , og en , der viser en "Next side " linket , hvis den respektive side eksisterer ( det er, hvis " $ currentPage "er større end en for" Forrige side ", og hvis " $ currentPage "er større end " $ totalPages "for " Next Page "). Her er koden : Hej
if ($ currentPage > 1 ) {
echo ' Forrige side ";
}
if ($ currentPage <$ totalPages ) {
echo ' Næste side '?' ( $ currentPage +1) . . «
}