Paginar resultados MySQL con PHP tiene una serie de beneficios . En primer lugar, se acelera la consulta MySQL , ya que sólo devuelve un pequeño número de resultados . En segundo lugar , mejora la experiencia del usuario , ya que muestra un número manejable de resultados por página . En tercer lugar , se ahorra ancho de banda al no enviar los resultados no sean necesarios . Por estas razones , muchos sitios , como Google, Yahoo y WordPress , han aprobado su uso. Para utilizar la paginación MySQL, es necesario utilizar el comando "LIMIT " SQL y los parámetros de "obtener" en la URL. Instrucciones
1
Crear una tabla " agenda" en su base de datos MySQL con las columnas "id ", "nombre" y "teléfono" . Rellene la tabla con algunas entradas. Aquí están las consultas SQL para crear y llenar la tabla , respectivamente :
agenda CREAR TABLA ( ` id` int ( 11 ) NOT NULL AUTO_INCREMENT , ` nombre ` varchar ( 100 ) NOT NULL, ` telefónica ` varchar ( 20 ) NOT NULL, PRIMARY KEY ( ` id` ));
INSERT INTO agenda ( `name `, ` telefónicas `) VALUES ( 'Jack ' , '201 - 379 a 5406 ' ), ( ' Jake ' , '331 - 123 a 5196 ' ) , ( 'John ' , '222 - 342 a 3250 ');
2
Crear un nuevo archivo " pagination.php " y abrirlo con un texto editor como Bloc de notas . Escribe un segmento de código que se conecta a su servidor MySQL, usando la función " mysql_connect " de PHP , y selecciona la base de datos que contiene la tabla " agenda" , utilizando la función " mysql_select_db " de PHP. He aquí un ejemplo :
mysql_connect ( 'localhost ' , 'admin ', ' password' ) ;
mysql_select_db ( "prueba" ) ;
Reemplace las cuatro cuerdas con el nombre de host , nombre de usuario , contraseña y base de datos, respectivamente.
3
Escribir un segmento de código que establece la variable " $ RowsPerPage " para el número de filas que se mostrarán por página , establece "$ currentPage " a la página solicitada a través de " $ _GET [ 'page' ]" o cero si ninguna y establece "$ compensación " para el desplazamiento desde la que recuperar filas de la base de datos, se calcula restando uno de " $ currentPage " y multiplicando por "$ RowsPerPage . " He aquí un ejemplo :
$ RowsPerPage = 5 ;
$ currentPage = (( isset ($ _GET [ 'page' ] ) && $ _GET [ 'page' ]> 0 ) ? (int ) $ _GET [ 'page' ] : 1 ) ;
$ offset = ($ currentPage - 1 ) * $ RowsPerPage ;
4
escribir una línea de código que recupera "$ RowsPerPage " filas a partir de la compensación ajustado en " $ desplazamiento " de la tabla " agenda" mediante la ejecución de una consulta "SELECT " a través de la función " mysql_query " de PHP , y guarda el resultado en una nueva variable. Aquí está el código :
$ result = mysql_query ( 'SELECT * FROM LÍMITE directorio ' $ desplazamiento ' , ' $ RowsPerPage . . . ) ;
5
Escriba un "while" bucle que recupera las filas del conjunto de resultados de la consulta ", $ resultado", utilizando la función " mysql_fetch_assoc " de PHP y los muestra como una lista o tabla. He aquí un ejemplo :
echo '
ID < /th> | Nombre < /th> Teléfono | < /th> < ;/tr > '; while ( $ row = mysql_fetch_assoc ( $ result )) { echo' |
' . $ row [' id' ] . '< /td > | ' . $ row [' name'] . '< /td > | ' . $ row [' teléfono '] . '< /td > < /tr >'; } echo ' < /table >'; 6 Escribir un segmento de código que recupera el número de entradas en la tabla mediante la ejecución de una consulta "COUNT" a través de la función " mysql_query " de PHP , calcula el número de páginas dividiendo el número de entradas por el "$ RowsPerPage " variable y redondeo hacia arriba y guarda el resultado en una variable " $ totalPages ". Aquí está el código : $ result = mysql_query ( 'SELECT COUNT ( * ) AS contar de agenda '); $ row = mysql_fetch_assoc ( $ result ) ; $ totalPages = ceil ( $ row [' count' ] /$ RowsPerPage ) ; 7 escribir dos " if" : uno que muestra un vínculo " Página anterior " y que muestra un "Next " link, si existe la página correspondiente ( es decir, si " página $ currentPage " es mayor que uno para " página Anterior " y si " $ currentPage " es mayor que " $ totalPages " para" página siguiente " ) . Aquí está el código : if ($ currentPage > 1 ) { echo ' Anterior < /a > '; } if ($ currentPage <$ totalPages ) { echo' Página siguiente < /a > ' ? ; } de búsqueda:' ($ currentPage 1 ) . ».
|