Tema: Paginación
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/09/2009, 22:02
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Busqueda Respuesta: Paginación

Hola

Bueno, pues lo que necesitas no es tan complicado
Lo que tienes que hacer es limitar la consulta de sql a los resultados que quieras ver e ir mostrandolos en un while

por ej, si tus videos son estos

video1, video2, video3, video4, video5

SELECT * FROM `videos` limit 0,2 te mostrará
video1
video2

SELECT * FROM `videos` limit 2,2 te mostrará
video3
video4
Porque?? pues porque el limit funciona de la siguiente manera
el primer parametro es desde que posición de registro vas a listar,
y el segundo parametro cuantos registros vas a ver, es decir, si cambiamos
el segundo parametro a 3 tendriamos esto

SELECT * FROM `videos` limit 2,3 te mostrará
video3
video4
video5

si te has fijado, el segundo valor viene siendo una constante, en cambio el primero es una variable, pues este va a cambiar dependiendo desde que registro queremos que nos muestre, y para eso podrias hacer una multiplicación de la constante por otra variable que seria, por ej, el numero de la página para que sea dinámico, así tendrías algo así

Código PHP:
<?php 
$conn 
mysql_connect("localhost","test","test");
mysql_select_db("test");
//La constante que nos dira cuantos vamos a ver siempre
$cuantosporpagina 2;
if( 
$_GET['pag'] == '' ){
    
$ver 0;
}else{
    
$ver $cuantosporpagina $_GET['pag'];  
}
//$ver nos da la posicion desde la cual veremos registros
$sql "SELECT titulo, nombre from videos LIMIT $ver, $cuantosporpagina";
$query mysql_query($sql,$conn);
echo 
"<table>";
//Si la consulta trajo datos
if( mysql_num_rows($query) > ){
    echo 
"<tr><td>Nombre</td><td>Titulo</td></tr>";
    
//While para mostrar los datos
    
while( $videos mysql_fetch_array($query) ){
    echo 
"<tr><td>".$videos['0']."</td>";
    echo 
"<td>".$videos['1']."</td></tr>";
    }
    echo 
"<tr>";
    
//Condiciones para ver la paginacion (Con anterior y siguiente)
    
if( $_GET['pag'] == '' || $_GET['pag'] == ){
        
$sig $_GET['pag'] + 1;
        echo 
"<td><a href='?pag=".$sig."'>Siguiente</a></td>";
    }
    else if( 
$_GET['pag'] >&& $ver <= $cuantosporpagina ){
        
$ant $_GET['pag'] - 1;
        echo 
"<td><a href='?pag=".$ant."'>Anterior</a></td>";
        
$sig $_GET['pag'] + 1;
        echo 
"<td><a href='?pag=".$sig."'>Siguiente</a></td>";
    }
    else if( 
$_GET['pag'] != '' && $ver >= $cuantosporpagina ){
        
$ant $_GET['pag'] - 1;
        echo 
"<td><a href='?pag=".$ant."'>Anterior</a></td>";
    }
    echo 
"</tr>";
}
//Si no trajo datos
else{
    echo 
"<tr><td>No hay datos</td></tr>";
}        
    echo 
"<table>";
?>
Pruebalo , espero te sirva
Y bueno, esto lo hice por pruebas y para darte un ejemplo de como debe funcionar,
pero le faltan algunas validaciones (si realizas buenas pruebas te daras cuenta), y pues
el resto te queda de tarea, o siempre puedes buscar paginadores ya hechos en la web
o incluso aquí en los foros!
Saludos

Última edición por mortiprogramador; 06/09/2009 a las 22:10 Razón: Adición