Foros del Web » Programando para Internet » PHP »

Problema con mi paginación

Estas en el tema de Problema con mi paginación en el foro de PHP en Foros del Web. Hola. Estoy tratando de paginar unos resultados que hago en una consulta a mi base de datos y tengo dos problemillas. El primer incoveniente es ...
  #1 (permalink)  
Antiguo 25/10/2009, 13:08
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
Problema con mi paginación

Hola.
Estoy tratando de paginar unos resultados que hago en una consulta a mi base de datos y tengo dos problemillas.
El primer incoveniente es que al tratar de paginar, si bien me sale el numero de paginas 1,2,3,...N de manera correcta, siempre me muestra una sola fila con el mismo valor.
El segundo problema es que me esta mandando un aviso en la linea 53 que no comprendo que tiene de mal el error es: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given.....
Aqui mi código:

Código PHP:
<?php
                
//Carga de variables del Servidor de Base de Datos.
                
require ('/procesos/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 concat(rut_personal,"-",dv_personal), nombres_personal, apellido_paterno_personal, apellido_materno_personal FROM personal ORDER BY apellido_paterno_personal, apellido_materno_personal';
                
//Ejecucion de la consulta SQL.
                
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
                
                
$num_registros=mysql_num_rows($resultado);
                echo
"$num_registros";
                
                
//Comprueba existencia de resultado
                    
if (mysql_num_rows($resultado))
                {
                          
//*******EL FOR ES LA LINEA 53*******
                                   
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
                      {
                        if (!(
$registro mysql_fetch_row($resultado)))
                        {
                            continue;
                        }
                                                
                        
//Paginación
                        
$registros=5;
                        
$num=(isset($_GET["num"])? $_GET["num"]:""); 
                        
$pagina=$_GET["num"];
                        
                        if (
is_numeric($pagina))
                            
$inicio=(($pagina-1)*$registros);
                        else                         
                            
$inicio=0;
                            
$resultado mysql_query("SELECT concat(rut_personal,"-",dv_personal), nombres_personal, apellido_paterno_personal, apellido_materno_personal FROM personal ORDER BY apellido_paterno_personal, apellido_materno_personal" ,$conexion);
                            
$paginas_totales=ceil($num_registros/$registros);
                            echo 
'<tr>';
                            echo 
'<td><div><form name="buscar" method="post" action="modificar_personal.php"><input type="submit" value="'.$registro[0].'"><input type="hidden" name="rut" value="'.$registro[0].'"><input type="hidden" name="enviar" value="Buscar"></form></div></td>';
                            echo 
'<td><div>'.$registro[1].'</div></td>';
                            echo 
'<td><div>'.$registro[2].'</div></td>';
                            echo 
'<td><div>'.$registro[3].'</div></td>';
                            echo 
'</tr>';
                   }
                }
                else
                {
?>
                    </table>

                    <table width="100%" class="Estilo1" align="center">
                        <tr>
                            <td><div align="center">No existen registros!</div></td>
                        </tr>
                    </table>
<?php
                
}
?>
        </table>
        <?php        
        
//Imprimir numeros de paginas
            
if ($pagina>1)
                echo 
"<a href='/sistema/php/maestro_personal.php ?num=" . ($pagina-1) ."' > Anterior</a> " ;    
               for (
$cont=1;$cont<=$paginas_totales;$cont++)
               {
                  if (
$cont==$pagina)
                        echo 
$cont " " ;
                         else
                             echo 
"<a href='/sistema/php/maestro_vehiculos.php?num=".$cont ."'>$cont</a> " ;
                       }
            if (
$pagina<$paginas_totales)
                  echo 
"<a href='/sistema/php/maestro_personal.php ?num=" . ($pagina+1) ."'> Siguiente</a> " ;
?>
  #2 (permalink)  
Antiguo 25/10/2009, 14:04
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: Problema con mi paginación

abajo de:

echo"$num_registros";

escribe:

$totalR=$num_registros-1;

y sustitutye:

for ($i = 0;$i <= mysql_num_rows($resultado)-1; $i++)

por:

for ($i = 0;$i <= $totalR; $i++)



y dime si te funciona. Saludos
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 25/10/2009, 14:33
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: Problema con mi paginación

No, aplicando el código que tú me dices sigue mostrando de igual forma un solo registro y una sola fila.
  #4 (permalink)  
Antiguo 25/10/2009, 14:39
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: Problema con mi paginación

y sigue apareciendo el error que me comentas? Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given.....


la mejor forma seris sutituir ese for por un while
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 25/10/2009, 15: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: Problema con mi paginación

sí el comportamiento es el mismo, vere que sucede con un while
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 14:04.