Foros del Web » Programando para Internet » PHP »

Paginar registros consultados a la BD

Estas en el tema de Paginar registros consultados a la BD en el foro de PHP en Foros del Web. Hola. Estoy tratando de poder paginar los resultados de la consulta que realizo a mi base de datos. Me esta arrojando error en la consulta ...
  #1 (permalink)  
Antiguo 02/10/2009, 15:36
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Paginar registros consultados a la BD

Hola.
Estoy tratando de poder paginar los resultados de la consulta que realizo a mi base de datos. Me esta arrojando error en la consulta que me limita la cantidad de registros a mostrar por pantalla. el eero es el siguiente:
"Parse error: parse error in C:\wamp\www\Trabajo\PHP\alumnos.php on line 104"

Aqui dejo el codigo:

Código PHP:
<?php

    
//Genera pagina nueva
    
function crea_pagina_nueva()
    {
?>

<?php
                
//Carga de variables del Servidor de Base de Datos.
                
require ('base_de_datos.php');
                
//Conexion a la Base de Datos.
                
$conexion mysql_connect($host,$usuario,$password) or die ('Error de conexion, el error es: '.mysql_error());
                
//Seleccion de la Base de Datos.
                
mysql_select_db($bd,$conexion) or die ('Error de selecion de Base de Datos, el error es: '.mysql_error());
                
//Confeccion de la consulta SQL.                
                        
$consulta 'SELECT id_alumno,apellido_alumno , edad_alumno, sexo_alumno, ano_alumno, descripcion_alumno FROM alumno JOIN estado_alumno USING (id_estado_alumno)';
                  
//Ejecucion de la consulta SQL.
                
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
                
//Comprueba existencia de resultado
                
if (mysql_num_rows($resultado))
                {
                    
//Muestra los resultados
                    
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
                    {
                        if (!
mysql_data_seek($resultado$i))
                        {
                            echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                            continue;
                        }
                        if (!(
$registro mysql_fetch_row($resultado)))
                        {
                            continue;
                        }
                        echo 
'<tr bgcolor="#cccccc">';
                        echo 
'<td><div align="center"><form name="buscar" method="post" action="modificar_alumno.php"><input type="submit" value="'.$registro[0].'"><input type="hidden" name="id_vehiculo" value="'.$registro[0].'"><input type="hidden" name="enviar" value="Buscar"></form></div></td>';
                        echo 
'<td><label style="font-size:12px"><div align="center">'.$registro[1].'</div></label></td>';
                        echo 
'<td><label style="font-size:12px"><div align="center">'.$registro[2].'</div></label></td>';
                        echo 
'<td><label style="font-size:12px"><div align="center">'.$registro[3].'</div></label></td>';
                        echo 
'<td><label style="font-size:12px"><div align="center">'.$registro[4].'</div></label></td>';
                        echo 
'<td><label style="font-size:12px"><div align="center">'.$registro[5].'</div></label></td>';
                        echo 
'</tr>';
                        
                    }
                }
                else
                {
?>
                    </table>
                    <table width="100%" class="Estilo1" align="center">
                        <tr>
                            <td><label style="font-size:20px"><div align="center">No hay registros en la base de datos </div></label></td>
                        </tr>
                    </table>
<?php
              
//cierra else
               
}
                       
        
//******PAGINACION*********
        //cantidad de registros por pagina
        
$registros=5;
        
//numero de pagina que desea ver el usuario 1,2,3,4....N
        
$pagina=$_GET["num"];
        if (
is_numeric($pagina))
                 
$inicio=(($pagina-1)*registros);
        else
                
$inicio=0;
        
/////////////////*******************ESTA LINEA ME ARROJA EL ERROR************************************\\\\\\\\\\\\\\\\\\\\\\\
        
$resultado mysql_query("SELECT id_alumno,apellido_alumno , edad_alumno, sexo_alumno, ano_alumno, descripcion_alumno FROM alumno JOIN estado_alumno USING (id_estado_alumno) JOIN estado_alumno USING (id_estado_alumno) limit $inicio,$registros " $conexion);
        
$paginas= ($num_registros/$registros);        
?>        
        </table>
<?php
 
//cierra funcion
    
}
?>

Gracias desde ya!

Saludos

Última edición por Capote; 02/10/2009 a las 15:43
  #2 (permalink)  
Antiguo 02/10/2009, 15:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Paginar registros consultados a la BD

Te falta una , para separar los parámetros de la función.

Saludos.
  #3 (permalink)  
Antiguo 02/10/2009, 16:23
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Paginar registros consultados a la BD

Hola.
Claro me faltaba la "coma" en la consulta SQL y ahora se ejecuta bien.
Lo que sucede son dos cosas la primera es que me esta mostrando todo los resultados sin paginar. Si tengo 30 filas me las muestra todas. Como que no limita al valor que esta en la variable $registros.
Lo otro es que me arroja un mensaje que dice:Notice: Undefined index: num in C:\wamp\....... pero aun asi me muestra los valores de la consulta.

Aqui la seecion de la paginación, corregida en la parte de la consulta, pero que aún no funciona al 100%.


Código PHP:
<?php
              
//cierra else
               
}
                       
        
//******PAGINACION*********
        //cantidad de registros por pagina
        
$registros=5;
        
//numero de pagina que desea ver el usuario 1,2,3,4....N
       //////Ahora me arroja una especie de error aqui, que es donde mas adelante recogere el numero de pagina que se desea ver
       
$pagina=$_GET["num"];
        if (
is_numeric($pagina))
                 
$inicio=(($pagina-1)*$registros);
        else
                
$inicio=0;
        
$resultado mysql_query("SELECT id_alumno,apellido_alumno , edad_alumno, sexo_alumno, ano_alumno, descripcion_alumno FROM alumno JOIN estado_alumno USING (id_estado_alumno) JOIN estado_alumno USING (id_estado_alumno) limit $inicio,$registros "$conexion);
        
$paginas= ($num_registros/$registros);        
?>


Gracias por la ayuda.

Última edición por Capote; 02/10/2009 a las 17:53
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:51.