Foros del Web » Programando para Internet » PHP »

problemas com paginación

Estas en el tema de problemas com paginación en el foro de PHP en Foros del Web. Buenas apañeros; Tengo un pequeño problema con un script k me han pasado para paginar resultados. En mi caso necesito paginar los datos de una ...
  #1 (permalink)  
Antiguo 06/06/2005, 12:27
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 13 años
Puntos: 3
problemas com paginación

Buenas apañeros;

Tengo un pequeño problema con un script k me han pasado para paginar resultados. En mi caso necesito paginar los datos de una consulta, tipo noticiario salen todas las noticias pero k se vallan mostrando pos de 3 en tres.... El script es este:

Código PHP:
<?php
//listado general            
$result=mysql_query("select ID_NOTICIA
from NOTICIAS
order by FECHA_MYSQL desc"
,$link) or die(mysql_error());

$numeroRegistros=mysql_num_rows($result); //necesario para la paginaci&oacute;n
        //////////calculo de elementos necesarios para paginación
        //tama&ntilde;o de la pagina
        
$tamPag=1;
        
//pagina actual si no esta definida y limites
        
if(!isset($pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }
        
//calculo del limite inferior
        
$limitInf=($pagina-1)*5;
        
//calculo del numero de paginas
        
$numPags=ceil($numeroRegistros/5);
        if(!isset(
$pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }else{
            
$seccionActual=intval(($pagina-1)/$tamPag);
            
$inicio=($seccionActual*$tamPag)+1;
            if(
$pagina<$numPags)
            {
               
$final=$inicio+$tamPag-1;
            }else{
                
$final=$numPags;
            } }
        
//////////fin de dicho calculo

        //////////creacion de la consulta con limites
        
$result=mysql_query("select ID_NOTICIA, TITULO, NOTICIA, FECHA_MYSQL
from NOTICIAS
where ID_NOTICIA='$id_noticia'
order by FECHA_MYSQL desc LIMIT "
.$limitInf.",5",$link) or die(mysql_error());
?>
Luego hago la correspondiente consulta pa sacar las noticias, y después

Código PHP:
 <?
echo "( ";
if(
$pagina>1)
{
echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=1&proceso=mostrar&id_noticia=".$_GET["id_noticia"]."'>";
echo 
"<font face='verdana' size='-2' color='#37348B'>Primera p&aacute;gina</font>";
echo 
"</a>&nbsp;";
echo 
" &nbsp; <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&proceso=mostrar&id_noticia=".$_GET["id_noticia"]."'>";
echo 
"<font face='verdana' size='-2' color='#37348B'><<</font>";
echo 
"</a>&nbsp;";
}
 
for(
$i=$inicio;$i<=$final;$i++)
{
if(
$i==$pagina)
{
echo 
" &nbsp; <font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
}else{
echo 
" &nbsp; <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&proceso=mostrar&id_noticia=".$_GET["id_noticia"]."'>";
echo 
"<font face='verdana' size='-2' color='#37348B'>".$i."</font></a>&nbsp;";
}
}
if(
$pagina<$numPags)
{
echo 
" &nbsp; <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&proceso=mostrar&id_noticia=".$_GET["id_noticia"]."'>";
echo 
"<font face='verdana' size='-2' color='#37348B'>>></font></a>";
}
echo 
" &nbsp; <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($numPags)."&proceso=mostrar&id_noticia=".$_GET["id_noticia"]."'>";
if (
$numPags==$pagina) { echo "</a>"; } else {
echo 
"<font face='verdana' size='-2' color='#37348B'>&Uacute;ltima p&aacute;gina</font></a>"; }
echo 
" )";
//////////fin de la paginación
?>
Pues me falla pk me sale la fila donde pone Página: 1 <<< Última Página pero en vez de ir de tres en tres pos me salen todos en la página uno y si le doi a la última página pos me salen todas igualmente. Alguien me puede echar una mano?

Muchas graciasss de antemanoooo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.