Paginazione risultati MySQL con PHP ha una serie di vantaggi . Prima , accelera la query MySQL, in quanto restituisce solo un piccolo numero di risultati . Secondo , migliora l'esperienza dell'utente , come dimostra un numero gestibile di risultati per pagina . In terzo luogo, essa consente di risparmiare larghezza di banda , non l'invio risultati non necessari. Per queste ragioni , molti siti , tra cui Google , Yahoo e WordPress , hanno adottato il suo utilizzo . Per usare MySQL impaginazione , è necessario utilizzare il comando SQL "limite" ei parametri "GET" nell'URL . Istruzioni
1
Creare una tabella "Rubrica" nel vostro database MySQL con le colonne " id ", "nome" e "telefono" . Popolare la tabella con alcune voci. Qui ci sono le query SQL per la creazione e la tavola , rispettivamente :
CREATE TABLE rubrica ( `id` int ( 11) NOT NULL AUTO_INCREMENT , ` nome ` varchar ( 100 ) NOT NULL , ` telefono ` varchar ( 20 ) NOT NULL , PRIMARY KEY ( `id` ) ) ;
INSERT INTO rubrica ( ` nome `, ` telefono `) VALUES ( 'Jack' , '201 - 379-5406 ' ), ( ' Jake ' , '331 - 123-5196 ') , ( ' John' , '222 - 342-3250 ');
2
Creare un nuovo file " pagination.php " e aprirlo con un testo editor come Notepad . Scrivi un segmento di codice che si collega al vostro server MySQL , utilizzando la funzione " mysql_connect " di PHP , e seleziona il database che contiene la tabella " rubrica " , utilizzando la funzione " mysql_select_db " di PHP . Ecco un esempio :
mysql_connect ( 'localhost' , 'admin' , 'password ');
mysql_select_db ( 'test ');
Sostituire le quattro corde con il vostro nome host , il nome utente , la password e la base di dati , rispettivamente .
3
Scrivi un segmento di codice che imposta la variabile " $ rowsPerPage " per il numero di righe da visualizzare per pagina , imposta " $ currentPage " per la pagina richiesta tramite " $ _GET [ 'page '] " oppure zero se nessuno e imposta " $ offset " per l'offset da cui recuperare le righe dal database , calcolata sottraendo uno da " $ currentPage " e moltiplicando per "$ rowsPerPage . " Ecco un esempio :
$ rowsPerPage = 5;
$ currentPage = ( ( isset ( $ _GET [ 'page '] ) && $ _GET [ 'page '] > 0 ) ? (int ) $ _GET [ 'page '] : 1 ) ;
$ offset = ( $ currentPage - 1 ) * $ rowsPerPage ;
4
scrivere una riga di codice che recupera " $ rowsPerPage " righe a partire dal l'offset impostato in " $ offset" dalla tabella " rubrica ", eseguendo una query "SELECT " tramite la funzione " mysql_query " di PHP e salva il risultato in una nuova variabile . Ecco il codice :
$ risultato = mysql_query ( 'SELECT * FROM rubrica LIMIT ' $ offset ',' $ rowsPerPage . . . ) ;
5
Scrivi un " mentre" ciclo che recupera le righe dal set di risultati della query , " $ risultato", utilizzando la funzione " mysql_fetch_assoc " di PHP e li visualizza in un elenco o una tabella . Ecco un esempio :
echo '
ID < /th> | Nome < /th> | Numero di telefono < /th> < ;/tr> '; while ( $ row = mysql_fetch_assoc ( $ risultato) ) { echo' tr td ' . $ row [ 'id' ] . ' < /td> | ' . $ row [ 'name' ] . ' < /td> | ' . $ row [' telefono '] . ' < /td > < /tr> '; } echo ' < /table> '; 6 Scrivi un segmento di codice che recupera il numero di voci nella tabella eseguendo una query " COUNT " tramite la funzione " mysql_query " di PHP , calcola il numero di pagine dividendo il numero di voci da " $ rowsPerPage " variabile e arrotondamento verso l'alto e salva il risultato in una variabile "$ TotalPages ". Ecco il codice : $ risultato = mysql_query ( 'SELECT COUNT ( * ) AS Conteggio FROM rubrica '); $ row = mysql_fetch_assoc ( $ risultato) ; $ TotalPages = ceil ( $ row [' count' ] /$ rowsPerPage ) ; 7 scrivere due istruzioni "if" : uno che visualizza una "Pagina precedente " legame e uno che mostra un "Next " collegamento , se la rispettiva pagina esiste ( cioè se " Pagina $ currentPage " è maggiore di uno per" pagina precedente ", e se " $ currentPage "è maggiore di " $ TotalPages " per" Next Page " ) . Ecco il codice : if ( $ currentPage > 1) { echo ' < a href = " pagina pagination.php = ? ' ( $ CurrentPage - 1) ' . . "> Pagina precedente < /a> '; } if ( $ currentPage < $ TotalPages ) { echo' < a href =" impaginazione . php page = " > Pagina successiva < /a> ' ;? } ' ( $ currentPage +1) . '.
|