Foros del Web » Programando para Internet » PHP »

paginacion y ordenacion

Estas en el tema de paginacion y ordenacion en el foro de PHP en Foros del Web. Tengo una página que me muestra un listado de datos que obtiene de la base de datos. En la cabecera de cada dato pone que ...
  #1 (permalink)  
Antiguo 25/08/2007, 09:01
Avatar de SILVI85  
Fecha de Ingreso: julio-2007
Mensajes: 109
Antigüedad: 16 años, 8 meses
Puntos: 1
Pregunta paginacion y ordenacion

Tengo una página que me muestra un listado de datos que obtiene de la base de datos. En la cabecera de cada dato pone que dato es: nombre, apellido,etc.. y dos botones para ordenar los datos ascedentemente y descendentemente. Tambien tengo que si el resultado de la busqueda es mas de 5 datos,me muestre los datos paginados,es decir que si hay 7 datos,me muestra 5 y los otros 2 en otra pagina que me creo yo.El problema es que si pongo lo de la ordenacion y lo de la paginacion no me funciona las dos cosas a la vez,solo me ordena los datos de la 1º hoja.

Este es el codigo:
Código PHP:
include("conexion.php");

$tamano_pagina 5;
$pagina = @$_REQUEST["pagina"];
if (!
$pagina)
{
$inicio 0;
$pagina 1;
}
else
{
$inicio = ($pagina 1) * $tamano_pagina;
}

$cadena "select * from ciudad order by idciudad ASC limit ".$inicio.", ".$tamano_pagina;

if(isset(
$boton1))
{
$cadena "select * from ciudad order by idciudad ASC limit ".$inicio.", ".$tamano_pagina;
}
if(isset(
$boton2))
{
$cadena "select * from ciudad order by idciudad DESC limit ".$inicio.", ".$tamano_pagina;
}
if(isset(
$boton3))
{
$cadena "select * from ciudad order by nombre ASC limit ".$inicio.", ".$tamano_pagina;
}
if(isset(
$boton4))
{
$cadena "select * from ciudad order by nombre DESC limit ".$inicio.", ".$tamano_pagina;
}

    
$consulta=mysql_query($cadena) or die ("error en la consulta");
    
$nfilas=mysql_num_rows($consulta);
        echo 
$nfilas;        
if(
$nfilas!=0)
{

echo 
"Los datos que se encuentran en la tabla son:<br><br>";
            
      
$a=chr(187);
      
$b=chr(171);
      
        echo 
"<TR>";
    echo 
"<TD align=center>";
    
//echo "<input type = button  value=\"A\" name=\"boton1\" onclick=\"location.href='listar.php?boton1=1'\">";
    
echo "<INPUT TYPE=\"submit\" NAME=\"boton1\" VALUE=\"$b\">";
    echo 
"<b>ID Ciudad</b>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton2\" VALUE=\"$a\">";
  
    echo 
"</TD>";
    echo 
"<TD align=center>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton3\" VALUE=\"$b\">";
    echo 
"<b>Nombre</b>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton4\" VALUE=\"$a\">";
    echo 
"</TD>";
    echo 
"</TR>";
        for(
$o=0;$o<$nfilas;$o++)
    {
    
$filas=mysql_fetch_array($consulta);
      
$b=$filas["nombre"];
      
$a=$filas["idciudad"];
      
            
      echo 
"<TR>";
      echo 
"<TD align=center>";
      echo 
"$a";
      echo 
"</TD>";
    
      echo 
"<TD align=center>";
      echo 
"$b";
      echo 
"</TD>";
      echo 
"</TR>";
      }
     
    }
    else
    {
    echo 
"No existen datos en esta tabla<br><br>";
    }
   
                    echo 
"</table>";
                    echo 
"<br>";
                    
                
//    $ssql = "select * from ciudad";
                    //$rs = mysql_query($ssql,$conexion);
                    //$num_total_registros = mysql_num_rows($rs);
                    
$total_paginas ceil($nfilas/$consulta);
                    
                    echo 
"Numero de registros encontrados: ".$nfilas."<br>";
                    echo 
"Mostrando la pagina ".$pagina." de ".$total_paginas."<br>";
                        
                    include (
"cierre.php");
                        
$total_paginas=$total_paginas+1;
                    if (
$total_paginas 1)
                    {
                        for (
$i=1;$i<=$total_paginas;$i++)
                        {
                            if(
$pagina == $i)
                            {
                                echo 
$pagina." "
                            }
                                else
                            {
                                echo 
"<a href=listarciudades.php?pagina=".$i.">".$i." "."</a>";
                            }    
                        }

Qué tengo que cambiar?
A ver si me podriais ayudar,gracias ;)
  #2 (permalink)  
Antiguo 25/08/2007, 11:10
Avatar de SILVI85  
Fecha de Ingreso: julio-2007
Mensajes: 109
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: paginacion y ordenacion

Lo conseguí hacer bien, quien pueda interesar:

Código PHP:
include("conexion.php");            
                    
    echo 
"<TABLE border=1>";
        
                    
                
$boton1=@$_REQUEST["boton1"];
$boton2=@$_REQUEST["boton2"];
$boton3=@$_REQUEST["boton3"];
$boton4=@$_REQUEST["boton4"];

include(
"conexion.php");

$tamano_pagina 5;
$pagina = @$_REQUEST["pagina"];
if (!
$pagina)
{
$inicio 0;
$pagina 1;
}
else
{
$inicio = ($pagina 1) * $tamano_pagina;

}
if(
$pagina==1)
{
session_register("cadena");
@
$_SESSION["cadena"] = "select * from ciudad order by idciudad ASC";

}
if(isset(
$boton1))
{
@
$_SESSION["cadena"] =  "select * from ciudad order by idciudad ASC";

}
if(isset(
$boton2))
{
@
$_SESSION["cadena"] =  "select * from ciudad order by idciudad DESC";
}

if(isset(
$boton3))
{
@
$_SESSION["cadena"] =  "select * from ciudad order by nombre ASC";
}

if(isset(
$boton4))
{
@
$_SESSION["cadena"] =  "select * from ciudad order by nombre DESC";
}


$cad= @$_SESSION["cadena"]." limit ".$inicio.", ".$tamano_pagina;


echo 
$cad;
    
$consulta=mysql_query($cad) or die ("error en la consulta");
    
$nfilas=mysql_num_rows($consulta);
        
if(
$nfilas!=0)
{

echo 
"Los datos que se encuentran en la tabla son:<br><br>";
            
      
$a=chr(187);
      
$b=chr(171);
      
        echo 
"<TR>";
    echo 
"<TD align=center>";
    
//echo "<input type = button  value=\"A\" name=\"boton1\" onclick=\"location.href='listar.php?boton1=1'\">";
    
echo "<INPUT TYPE=\"submit\" NAME=\"boton1\" VALUE=\"$b\">";
    echo 
"<b>ID Ciudad</b>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton2\" VALUE=\"$a\">";
  
    echo 
"</TD>";
    echo 
"<TD align=center>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton3\" VALUE=\"$b\">";
    echo 
"<b>Nombre</b>";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"boton4\" VALUE=\"$a\">";
    echo 
"</TD>";
    echo 
"</TR>";
        for(
$o=0;$o<$nfilas;$o++)
    {
    
$filas=mysql_fetch_array($consulta);
      
$b=$filas["nombre"];
      
$a=$filas["idciudad"];
      
            
      echo 
"<TR>";
      echo 
"<TD align=center>";
      echo 
"$a";
      echo 
"</TD>";
    
      echo 
"<TD align=center>";
      echo 
"$b";
      echo 
"</TD>";
      echo 
"</TR>";
      }
     
    }
    else
    {
    echo 
"No existen datos en esta tabla<br><br>";
    }
   
                    echo 
"</table>";
                    echo 
"<br>";
                    
                
//    $ssql = "select * from ciudad";
                
                    //$rs = mysql_query($ssql,$conexion);
                    //$num_total_registros = mysql_num_rows($rs);
                    
$total_paginas ceil($nfilas/$consulta);
                    
                    echo 
"Numero de registros encontrados: ".$nfilas."<br>";
                    echo 
"Mostrando la pagina ".$pagina." de ".$total_paginas."<br>";
                        
                    include (
"cierre.php");
                        
$total_paginas=$total_paginas+1;
                    if (
$total_paginas 1)
                    {
                        for (
$i=1;$i<=$total_paginas;$i++)
                        {
                            if(
$pagina == $i)
                            {
                                echo 
$pagina." "
                            }
                                else
                            {
                                echo 
"<a href=listarciudades.php?pagina=".$i.">".$i." "."</a>";
                            
                            }    
                        }

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 20:40.