Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/02/2008, 15:41
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Re: Problema con el uso de limit para dividir en pagina los mensajes de un foro

Bueno, en primera creo no tienes bien definido las propiedades de limit, por lo que puedo deducir tu variable $end estas indicando hasta que indice tomar, sin embargo esa no es la funcion, veras estas son las propiedades de LIMIT

Código PHP:
$inicio 1;
$cuantos_registros_regresa 20;
$sq="select * from tabla LIMIT $inicio,$cuantos_registros_regresa"
ahora veras que vas por mal camino (pero con un mismo objetivo) porque en ves de pasar la varable $start y $end porque no mejor pasas el numero de pagina a cargar, por ejemplo:

supongamos que tenemos un foro y en determinado foro tenemos un numero de mensajes, supongamos 100, ahora, nosotros queremos visualizar 20 por pagina, entonses solo divimos el total de comentarios por el numero por pagina

Código PHP:
$total_reg 100;
$num_pag ceil($total_reg $cuantos_registros_regresa ); 
Como puedes ver, utilisamos la funcion ceil() que al dar un numero con decimales (por ejemplo 5.6) redondea el numero a uno mayor (en este caso a 6), esto es importante porque no podemos tener 5 paginas y media si fuera el caso, tendriamos que tener 6 paginas

ahora para la seccion de sql solo tienes que calcular desde cual indice comenzar recojer y cuantos se tienen que recojer

Código PHP:
$pag_actual 1//aqui tendrias que validar si se accede a la primera pagina o a una segunda con alguna varible GET
$reg_inicio = ($pag_actual 1) * $pag_actual//recuerda que el contador inicia desde 0

$sql="select * from tabla LIMIT $reg_inicio,$cuantos_registros_regresa"
y ahora solo te faltaria generar los enlaces

Código PHP:
echo '<a href="index.php?pag='.($pag_actual 1).'">Siguiente</a>'
esto es algo muy basico pero que creo te ayudara a comprender mejor el sistema de paginacion (que es lo que estas tratando de hacer)

si tienes alguna duda solo pregunta

aahh se me olvidaba, para generar los enlaces del tipo 'Anterior 1 2 3 4 Siguiente' es facil, solo con un for

Código PHP:
$url='';
for (
$i=1$i<=$total_pag$i++) {
if (
$i == $pag_actual) {
$url .= '<strong>'.$i.'</strong> ';
}else {
$url .= '<a href="index.php?pag='.$i.'">'.$i.'</a> ';
}

__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)