2010-06-22 14 views
6

Soy nuevo en PHP y SQL, y tengo una pequeña pregunta sobre cómo realizar consultas SQL, que puede:PHP/MySQL paginación

  • Tomemos, por ejemplo, 5 entradas de base de datos, inserte ellas en primera página (1-5)
  • que tomar próximos 5 entradas de la misma base de datos e insertarlos en otra página (5-10)
    y así sucesivamente :)

Gracias)

+0

posible duplicado de [paginación MySQL sin doble consulta?] (Http://stackoverflow.com/questions/818567/mysql-pagination-without-double-querying) –

Respuesta

5
SELECT col FROM table LIMIT 0,5; -- First page, rows 1-5 
SELECT col FROM table LIMIT 5,5; -- Second page, rows 6-10 
SELECT col FROM table LIMIT 10,5; -- Third page, rows 11-15 

Lea la página de ayuda de LIMIT section on the MySQL SELECT. Si desea visualizar el número total de filas disponibles, puede realizar un recuento adicional o utilizar la función ROW_COUNT.

0

Hay varias maneras de hacer esto, creo que el rendimiento más rápido está siguiendo uno:

$ItemsPerQuery = 5; 
$CurrentPage = 0; //here you can add the current site through $_GET array or other ways, but don't forget to use mysql_real_escape_string(), because of mysql injection 

$Query = mysql_query("SELECT * FROM table LIMIT ".($ItemsPerQuery*$CurrentPage).",".$ItemsPerQuery); 

while($row = mysql_fetch_assoc($query)) 
{ 
    echo $row['column_name']; 
} 

cosas que puedes usar:

+0

Sí, bueno gracias) Tengo algo así como esto en mi cabeza, pero no tenía idea de cómo realizarlo de la manera adecuada. – user313216

+0

Esto no es correcto, la página 1 no mostrará las primeras 5 entradas, el límite de inicio es 1 * 5, debería ser 0 y en conjunto debería ser ($ ItemsPerQuery * $ CurrentPage - $ ItemsPerQuery) – cypher

+0

uhm, verdadero :) the '$ CurrentPage' debe ser 0, porque 0 * 5 = 0. lo siento –

0

Si su consulta no devuelve un prohibitivo cantidad de resultados, considere usar Jquery para enviar una página con una función Tablesorter. Toma una tabla HTML formateada correctamente y páginas, géneros, etc. sobre la marcha ... no hay necesidad de variables de consulta adicionales si no lo desea. Es mucho más fácil que utilizar la ruta completa de búsqueda de PHP, y es mucho más rápido para el usuario.

Mi ejemplo favorito es aquí: http://datatables.net/

Se puede no satisfacer plenamente sus necesidades, pero está bien para muchas aplicaciones. Si lo hace, simplemente no olvide formatear su tabla con thead y tbody para que pueda recoger los elementos de la tabla correctamente.