Foros del Web » Programando para Internet » PHP »

Paginación de datos

Estas en el tema de Paginación de datos en el foro de PHP en Foros del Web. Buenas compañeros, Tengo un pequeño problema con la paginación.Me funciona correctamente, me muestra los datos de 10 en 10 o como le indique. Les cuento ...
  #1 (permalink)  
Antiguo 12/09/2005, 04:00
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 13 años
Puntos: 3
Paginación de datos

Buenas compañeros,
Tengo un pequeño problema con la paginación.Me funciona correctamente, me muestra los datos de 10 en 10 o como le indique. Les cuento entonces cual es mi problema: Supongamos que paginamos de 10 en 10, y estoy viendo la noticia numero 14, pues bien, cuando modifico esa noticia(14) al actualizar la página en vez de mostrarme los 10 resultados correspondientes a la noticia que acabo modificar es decir del 10 al 20 par aver la 14, me vuelve a las 10 primeras (1-10) .... y claro, si quiero ver como me ha quedado la noticia que acabo de modificar le tengo que dar a siguiente hasta llegar a dicha noticia....

Entonces lo que me gustaría hacer es que se al actualizar se vea justo en la página donde me encontraba al modificar. Les dejo el código para que sea sencillo de comprendeer. Espero que a su vez sea útil el código para otros como yo
Código PHP:
      <?php
//listado general            
$result=mysql_query("select ID_CLIENTE
from CLIENTES
order by NOMBRE"
,$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)*15;
        
//calculo del numero de paginas
        
$numPags=ceil($numeroRegistros/15);
        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

?>
aquí la tabla con la consulta para mostrar los datos de la tabla CLIENTES
Código PHP:
<?php 
$sql
="select ID_CLIENTE, NOMBRE, MATRICULA, ESTADO
from CLIENTES
order by NOMBRE
LIMIT "
.$limitInf.",15";
$result=mysql_query("$sql",$link)or die (mysql_error());
while(
$row=mysql_fetch_array($result)){
$id_cliente=$row["ID_CLIENTE"];
$nombre=$row["NOMBRE"];
$matricula=$row["MATRICULA"];
$estado=$row["ESTADO"];
?>
<table ....>
y justo al final de la tabla donde quiero aparezca los números de páginas:
Código PHP:
<?
echo "( ";
if(
$pagina>1)
{
echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=1'>";
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)."'>";
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."'>";
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)."'>";
echo 
"<font face='verdana' size='-2' color='#37348B'>>></font></a>";
}
echo 
" &nbsp; <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($numPags)."'>";
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
?>
Y desde la página que edito , el enlace es:
Código PHP:
header("Location: index.php?mensaje=modificado"); 
Debo añadirle al heder la variable $pagina pero no se si lo he puesto bien o si lo he puesto mal, pero el caso es que no me funciona, como lo harían?

Muchas gracias de antemano y un saludo a todos.
  #2 (permalink)  
Antiguo 12/09/2005, 07:44
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Yo creo que deberias pasarle en el enlace del boton para modificar, el $pagina para que sepa donde estaba, y luego en la pagina donde modificas, cuando vuelves, tienes que pasarle otra vez el mismo $pagina.

Te lo pongo por si no lo ves:

Código PHP:
// Esto lo pones cuando muestres los datos, en el boton modificar o 
//como lo llames tu
<a href:"modificar.php?pagina=<?=$pagina?>">

// Luego en la pagina modifcar.php pondrás tu header pasandole la pagina
 header("Location: index.php?mensaje=modificado&pagina=<?=$pagina?>");
Espero que te sirva
Un saludo
  #3 (permalink)  
Antiguo 12/09/2005, 10:01
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 13 años
Puntos: 3
Muchas gracias, perfecto

Muchísimas gracias va perfecto ahorasí. Espero que sirva el código a otros, Un saludo y muchas gracias por vuestra ayuda, un saludooo
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 01:10.