como hacer una paginacion

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.
Lo queria usar en una web que tengo alojada gratuitamente en 000webhost, y no funciono, pero luego lo probe en un hosting que estoy pagando y si funciono, sabrias cual puede ser la causa, y si se le puede cambiar algo al codigo para que funcione en 000webhost?
Si el codigo usado es exactamente igual y en uno funciona y en otro no... debe ser algo del 000webhost. No sabria decirte si es posible hacerlo funcionar en el puesto que nunca lo use.
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.


Gracias...
Bueno si quieres paginar resultados haz asi:
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'];
}

Y listo...
Nota: Supongo que tienes una columna que se llame id, que se auto incrementa por cada registro en la tabla... Y el limit 0,30 en 30 puedes poner el número que quieras...
Espero haberte ayudado.
Saludos !
Hola, aca hay una forma muy facil que muestra enlaces siguiente y anterior en la pagina despues de mostrar un $limite de resultados:
<?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
Espero que te sirva, saludos
No me funciono, pero gracias a ese codigo pude armar uno bastante util:

creamos un archivo usuarios.php en mi caso
//incluimos el archivo para conectar a la bd
<?php
require ("cabecera.php");
//aqui determinamos si existe un valor get, si no le damos valor 1 a page
if(isset($_GET['page']) == TRUE){
$page = $_GET['page'];
}
else{
$page = 0;
}
//ajustamos el limite de enlaces a mostrar por apagina
$limit = 10;
//esto le da un numero a cada enlace, queda bueno!!!
$resultados_mostrados = 1;
//hacemos la seleccion de los datos
$sentencia2 = "SELECT * FROM users ORDER BY puntos desc LIMIT ". $page. "," . $limit. ";";
$userlist = mysql_query($sentencia2) or die("Error al tratar de ver la lista de usuarios");
//ponemos un while para mostrar los resultados
while ($ulti = mysql_fetch_object($userlist)){
echo "Nº ".$resultados_mostrados++."<a href='perfil.php?id=". $ulti->id . "'>nº <font color=#ff0000>" . $ulti->id . "</font> · ". $ulti->username ." - ". $ulti->puntos ." PUNTOS</a><br/>";
}
//le puse esto para que lo muestre cuando no hay mas resultados
if ($resultados_mostrados == 1)
{echo "No hay mas usuarios para mostrar.<br/>";}
//ahora el enlace que lleva a la pagina anterior, tiene un if para que muestre la palabra anterior si no hay mas enlaces hacia atras
if ($page > 1 )
{
// Enlace "anterior"
$anterior = $page - $limit;
echo "<a href='usuarios.php?page=$anterior'>Anterior</a> - ";
}
else {echo "<b>Anterior </b>";}
//algunos atajos para adelantar en caso de tener muchas paginas
echo "<a href='usuarios.php?page=1'>1</a>-";
echo "<a href='usuarios.php?page=11'>11</a>-";
echo "<a href='usuarios.php?page=21'>21</a>-";
echo "<a href='usuarios.php?page=31'>31</a>-";
echo "<a href='usuarios.php?page=41'>41</a>-";
//y por ultimo el enlace que muestra la pagina siguiente, tambien le puse un if para que muestre la palabra siguiente, si no hay mas que mostrar.
if ($resultados_mostrados > $limit)
{
// Enlace "siguiente"
$siguiente = $page + $limit;
echo "<a href='usuarios.php?page=$siguiente'>Siguiente</a><br/>";
}
else {echo "<b> Siguiente</b>";}
?>

pueden verlo aqui: www.mensajes.site88.net/usuarios.php
tienen que estar logeados para verlo, usen los siguientes datos:
usuario prueba
password prueba