Paginating MySQL resultater med PHP har en rekke fordeler. Først hastigheter opp MySQL spørring , da den bare gir et lite antall resultater . Sekund , det forbedrer brukerens opplevelse , som det viser et håndterlig antall resultater per side. Tredje , det sparer båndbredde ved ikke å sende unødvendige resultater. Av disse grunner , har mange nettsteder, inkludert Google, Yahoo og WordPress , vedtatt bruken. For å bruke MySQL paginering , må du bruke SQL " LIMIT "-kommandoen og "få" parametere i nettadressen. Instruksjoner
en
Lag en tabell " telefonbok " i MySQL-databasen med kolonner "id ", " name" og " telefon ". Fylle bordet med noen oppføringer . Her er de SQL-spørringer for å opprette og fyller bordet , henholdsvis : en
CREATE TABLE telefonbok (` id ` int ( 11 ) NOT NULL AUTO_INCREMENT , ` navn ` varchar ( 100 ) NOT NULL , ` telefon ` varchar ( 20 ) NOT NULL , PRIMARY KEY (` id ` ));
INSERT INTO telefonbok (` navn `, ` telefon `) VALUES ( ' Jack ' , '201 - 379-5406 ' ), ( ' Jake ' , '331 - 123-5196 ') , (' John' , '222 - 342-3250 ');
2
Opprett en ny fil " pagination.php " og åpne den med en tekst editor som Notisblokk . Skriv et segment med kode som kan kobles til din MySQL server , ved hjelp av PHP er " mysql_connect "-funksjon , og velger den databasen som inneholder " telefonbok " tabellen , ved hjelp av PHP er " mysql_select_db "-funksjonen . Her er et eksempel : en
mysql_connect (' localhost ', ' admin' , 'password ');
mysql_select_db (' test ');
Bytt ut de fire strenger med din vert , brukernavn , passord og database , henholdsvis .
3
Skriv et segment med kode som setter variabelen " $ rowsPerPage " til antall rader som skal vises per side , setter " $ currentPage " til på siden via " $ _GET [' side '] " eller null hvis ingen og setter " $ offset" til forskyvningen for å hente rader fra databasen , beregnes ved å trekke en fra «$ currentPage " og multiplisere med " $ rowsPerPage . " Her er et eksempel : en
$ rowsPerPage = 5;
$ currentPage = ( ( isset ( $ _GET [' side '] ) && $ _GET [' side '] > 0 ) ? ( int ) $ _GET [' side '] : 1 ) ;
$ offset = ( $ currentPage - 1 ) * $ rowsPerPage ;
4
Skriv en linje med kode som henter " $ rowsPerPage " rader med start fra forskyvningen satt i " $ offset" fra bordet " telefonbok " ved å kjøre en "SELECT " søket via PHP er " mysql_query " funksjon og lagrer resultatene i en ny variabel . Her er koden : en
$ result = mysql_query ( 'SELECT * FROM telefonbok LIMIT ' $ offset ' , ' $ rowsPerPage . . . ) ;
5
Skriv en "mens " loop som henter rader fra spørringen resultat sett , " $ resultat , " ved hjelp av PHP er " mysql_fetch_assoc "-funksjonen , og viser dem som en liste eller tabell . Her er et eksempel : en
echo '
ID < /th > | Navn < /th > | Telefonnummer < /th > < ;/tr> '; while ( $ rad = mysql_fetch_assoc ( $ resultat ) ) { echo' |
' . $ row [' id '] . '< /td > | ' . $ row [' name'] . '< /td > | ' . $ row [' telefon '] . '< /td > < /tr > '; } echo ' < /table> '; 6 Skriv et segment av kode som henter antall oppføringer i tabellen ved å utføre en "teller " søket via PHP er " mysql_query "-funksjonen , beregner antall sider ved å dividere antall oppføringer av " $ rowsPerPage " variable og avrunding oppover og lagrer resultatet i en variable " $ totalPages ." Her er koden : en $ result = mysql_query ( 'SELECT COUNT ( * ) AS telle fra telefonboken '); $ row = mysql_fetch_assoc ( $ resultat ) ; $ totalPages = ceil ( $ row [' teller '] /$ rowsPerPage ) ; 7 Skriv to " hvis "-utsagn : en som viser en "Forrige side " link og en som viser en "Next side " linken hvis den respektive siden eksisterer ( det vil si, hvis " $ currentPage " er større enn én for" Forrige side " , og hvis " $ currentPage " er større enn " $ totalPages "for " Next Page " ) . Her er koden : en if ( $ currentPage > 1 ) { echo ' Forrige side < /a > '; } if ( $ currentPage <$ totalPages ) { echo' Neste side < /a > ' ? ' ( $ currentPage 1 ) . . '; }
|