Foros del Web » Programando para Internet » PHP »

Paginar resultados de consulta

Estas en el tema de Paginar resultados de consulta en el foro de PHP en Foros del Web. Saludos a todos. mi inquietud es la siguiente: Quisiera poder paginar los resultados de una consulta que estoy ejecutando e yr mostrando de 10 en ...
  #1 (permalink)  
Antiguo 10/08/2007, 12:22
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Paginar resultados de consulta

Saludos a todos. mi inquietud es la siguiente:

Quisiera poder paginar los resultados de una consulta que estoy ejecutando e yr mostrando de 10 en 10 los registros esto porque pueden ser muchos los resultados de la consulta. este es el codigo que estoy utilizando pero tambien estoy trabajando esta parte con sesiones esto implicaria que las variables que utilizo tendrian que ser reconocidas en las paginas que se generarian con la (Paginacion de los resultados).

Este es el codigo que me genera la tabla de resultados.
Código PHP:
<?php

        
include("conex.php");
        
$link Conectarse();
        
        
$usuario $_POST['usuario'];
        
$password $_POST['password'];
        
        if (!(empty(
$usuario)) and (!empty($password)))
        {
        
                    
            
$consulta "SELECT * FROM administracion WHERE usuario = '$usuario'";
            
$resultado mysql_query($consulta$link);
            
$cursor mysql_fetch_array($resultado);
                    
            if (
$cursor['usuario'] != $usuario or $cursor['password'] != $password)
            {
            
                echo 
"<center><font color = #575757 ><b>Los datos que ha introducido son incorrectos.<a href =                'administracion.php'><img src = 'Ir.gif' vspace = 10 border = 0  height = 50 width = 50 ></center></font></a>";                exit();
            }
            else
            {
                
// NOMBRE DE LA SESIÓN
                
session_name("LoginAdministrador");
                
                
// INICIAR SESIÓN.
                
session_start();
                        
                
// ACCESO AL SISTEMA.
                
$_SESSION["ultimoAcceso"] = date("Y-m-d H:i:s");
                
                
$consul "SELECT usuario, password FROM administracion WHERE  password = '$password' ";
                
$result mysql_query($consul$link);
                
$fil mysql_fetch_array($result);
                
$_SESSION["usuario"] = $fil['usuario'];    
                
                
// PAGINAS PRIVADAS.
                
echo('<a href = "docentes.php" target = "Ventana_4" ><img src = "Usuarios1.gif" vspace = "10" border = "0"                align = right height = 64 width = 64 alt = "Para registrar un nuevo docente haga click sobre este icono." title =                "Para registrar un nuevo docente haga click sobre este icono." ></a>');
                echo(
'<a href = "noticias.php" target = "Ventana_5"><img src = "Noticias1.gif" vspace = "10" border = "0"                align = right height  = 64  width =  64 alt = "Para publicar una nueva noticia haga click sobre este icono." title                = "Para publicar una nueva noticia haga click sobre este icono."></a>');
                echo(
'<a href = "modificar_estados.php" target = "Ventana_5"><img src = "Reloj.gif" vspace = "10" border = "0"                align = right height  = 64  width =  64 alt = "Para modificar los estados haga click sobre este icono." title                = "Para modificar los estados haga click sobre este icono."></a>');
                
                
// EJECUCIÓN DE LA CONSULTA.
                
$consulta1 "SELECT * FROM usuarios WHERE estado = 'Activo' ORDER BY codusu ASC ";
                
$resultado1 mysql_query($consulta1$link);
                
$cantidad_usuarios mysql_num_rows($resultado1);    
                
                
// ENCABEZADO DE LA TABLA DE RESULTADOS.
                
echo "<h1><td align = left ><font color = 'blue'><i>ADMINISTRADOR - ".$_SESSION['usuario']."<B></td></h1></i>";
                echo 
"<h1><td align = left ><font color = 'blue'><i>USUARIOS ACTIVOS EN EL SISTEMA. $cantidad_usuarios<B></td>                </h1></i>";
                echo 
"<hr>\n\n";
                echo 
"<form action = 'cerrar_sesion_admin.php' method = 'post' >";
                echo 
"<center><table border = '1' bordercolor = 'white' cellspacing = 0 > \n";
                echo 
"<tr><td align = center bgcolor = #5B5BFF ><font color = 'white'><font size = 2><B>CÓDIGO DE USUARIO</td><td                bgcolor = #5B5BFF ><font  color = 'white'><font size = 2><B><center>NOMBRE DE USUARIO </td><td bgcolor = #5B5BFF >                <font color = 'white'><font size = 2><B><center>ESTADO DEL USUARIO</td><td bgcolor = #5B5BFF ><font  color =                'white'><font size = 2><B><center>FECHA ULTIMO ACCESO</td></tr>";
                
                while(
$row mysql_fetch_row($resultado1))
                {
                    echo 
"<tr>"
                    echo 
"<td align = center bgcolor = #E7E7E7 ><font size = 2><b>".$row[0]."</td>";
                    echo 
"<td align = center bgcolor = #E7E7E7 ><font size = 2><b>".$row[1]."</td>";
                    if (
$row[2] == 'Activo')
                    {
                        echo 
"<td align = center bgcolor = #E7E7E7 ><font size = 2><font color = 'green'><b>".$row[2]."</td>";
                    }
                    else
                    {
                        echo 
"<td align = center bgcolor = #E7E7E7 ><font size = 2><b>".$row[2]."</td>";
                    }
                    echo 
"<td align = center bgcolor = #E7E7E7 ><font size = 2><b>".$row[3]."</td>";
                    echo 
"</tr>";
                }
        
                    echo 
"</table></center>";
                    echo 
"<hr>";
                    echo 
"\n<tr><td colspan = 2 align = right><input type = 'submit' value = 'Cerrar sesion' >
                    </tr>"
;
                    echo 
"\n</form>";
                
            }
        }
        else
        {
            echo 
"<center><font color = #575757 ><b>Debe ingresar el nombre de usuario y la contraseña para entrar al sistema.<a            href = 'administracion.php'><img src = 'Ir.gif' vspace = 10 border = 0  height = 50 width = 50 ></center>            </font></a>";            
            exit();
        }
?>

Cualquier sugerencia al respecto les agradeceria de antemano, yo entiende lo del LIMIT para reducir resultados.

Saludos.
  #2 (permalink)  
Antiguo 10/08/2007, 12:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Paginar resultados de consulta

Pues después de LIMIT, otro numerito.

Prueba con esta consulta.
Código PHP:
$consulta1 "SELECT * FROM usuarios WHERE estado = 'Activo' ORDER BY codusu ASC LIMIT 10,10"
Esto te mostraría los 10 primeros resultados empezando a partir del resultado 10, es decir, del 10 al 20.
  #3 (permalink)  
Antiguo 10/08/2007, 13:16
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Paginar resultados de consulta

Entiendo lo del LIMIT pero lo que quiero es por medio de un enlace siguiente por ejemplo ir a la otra página de consulta con los siguientes 10 registros.

Espero haberme hecho entender.

Saludos.
  #4 (permalink)  
Antiguo 10/08/2007, 16:20
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Paginar resultados de consulta

Pues pasas por ejemplo una variable por un URL, o bien el número de página, que es lo mas habitual, o el número de registro desde cual empezar a mostrar resultados, que no es tan habitual, pero facilita levemente el trabajo.

En el for(), o el bucle que quieras usar, lo haces tantas veces como páginas existan (si muestras 10 registros por página, y hay 99 registros, hay 9 páginas), y ya el resto es fácil. Si divides los registros (99) entre la cantidad a mostrar por página (10) [9.9] y aplicas ceil() [9], te salen las páginas que tienes por esa consulta.

Espero haberme explicado bien.

Saludos.
  #5 (permalink)  
Antiguo 13/08/2007, 10:19
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Paginar resultados de consulta

Bonez no te entendi muy bien,arriba puse el código que me genera la tabla de resultados podrias explicarte mejor con un ejemplo

De antemano gracias por tu colaboración.

Saludos.
  #6 (permalink)  
Antiguo 13/08/2007, 10:23
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: Paginar resultados de consulta

Bueno, yo creo que crear un paginator es algo complicado, y siempre recomiendo el Paginator de Jpinedo.
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 15:00.