Buenas, alguien sabe como puedo paginar los resultados de un select ?
http://www.programacion.com/codigo/paginar_registros_de_una_consult…
Una manera muy facil :D
PD: LIMIT sirve para decir en que fila empieza y cuantas coge.
olukarak escribió:Ordenar los resultados obtenidos de la base de datos, en este caso, por una cantidad maxima por pagina. De esta manera, si hay, por ejemplo, un limite de 10 resultados por pagina y en la base de datos hay 17 elementos, el codigo creara, por si solo, una segunda pagina.
mysql_connect ('localhost','usuario','contraseña');
$q1 = mysql_query ("SELECT * FROM tu_tabla WHERE pones tu condición order by desc id limit 0,30");
while ($q2 = mysql_fetch_array($q1)) {
echo $q2['el nombre de la columna que quieres mostrar'];
}<?php
// Obtener la pagina actual
// El int es para forzar que el dato extraido de $_GET sea un numero
$pag = (isset($_GET['pag'])) ? (int) $_GET['pag'] : 0;
// Limite de resultados por pagina (aca lo configuras tu)
$limite = 10;
// Ahora lo importante
// No cambies a partir de LIMIT
$resultados_mostrados = 0;
$sql = mysql_query("SELECT * FROM `tabla` WHERE condicion LIMIT $pag,$limite");
while ($resultados = mysql_fetch_array($sql))
{
// Haz lo que quieras con los resultados
$resultados_mostrados++;
}
if ($pag > $limite && $pag % $limite == 0)
{
// Enlace "anterior"
$anterior = $pag - $limite;
echo "<a href='pagina_actual.php?pag=$anterior'>Anterior</a> - ";
}
if ($resultados_mostrados == $limite)
{
// Enlace "siguiente"
$siguiente = $pag + $limite;
echo "<a href='pagina_actual.php?pag=$siguiente'>Siguiente</a>";
}
?>Cambia pagina_actual por la pagina donde esta el codigo