Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2005, 03:00
Avatar de susaninhax
susaninhax
 
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
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.