Foros del Web » Programando para Internet » PHP »

Problema con la paginación de resultados

Estas en el tema de Problema con la paginación de resultados en el foro de PHP en Foros del Web. Hola. He realizado un pequeño libro de visitas, y en local me funciona perfectamente, pero cuando lo cuelgo en el servidor no. Creo que el ...
  #1 (permalink)  
Antiguo 08/08/2006, 04:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 12
Antigüedad: 18 años, 6 meses
Puntos: 0
Problema con la paginación de resultados

Hola. He realizado un pequeño libro de visitas, y en local me funciona perfectamente, pero cuando lo cuelgo en el servidor no. Creo que el problema está en la estructura del código, que por lo que sea, el srevidor no interpreta bien. Les enseño el código para ver si alguien me puede ayudar.

Código PHP:
    session_start();
    
    include (
"connections/connect.php");
    
mysql_select_db($database$conn);
    
    
// Realizamos la consulta de los registros que se van a mostrar en la tabla. Paginación
    
    
$tampag 10// Registros por página
    
if (!isset($pag)) {
        
$reg1 0;
        
$pag 1// Por defecto, pagina 1
    
} else {
        
$reg1 = ($pag-1) * $tampag// Cálculo de la posición de inicio para la consulta siguiente
    
}
    
    
$result mysql_query("SELECT * FROM librovisitas_php"$conn); 
    
    if(
mysql_fetch_row($result)) { // Compruebo que hayan registros pq si no me da error cuando trata de devolver el query siguiente
        
$total mysql_num_rows($result); // Número total de registros en la tabla
        
$result mysql_query("SELECT * FROM librovisitas_php ORDER BY comID DESC LIMIT $reg1, $tampag"$conn); 
    }
    
    function 
paginar($actual$total$por_pagina$enlace) {
          
$total_paginas ceil($total/$por_pagina); // ceil: numero entero redondeado al alza (i.e.) ceil(1/10)=1;
          
$anterior $actual 1;
          
$posterior $actual 1;
          if (
$actual>1) {
            
$textoAnterior "<a href=\"$enlace$anterior\" class=\"normal\"><strong><< anterior</strong></a>";
        }
          if (
$actual<$total_paginas) {
            
$textoSiguiente "<a href=\"$enlace$posterior\" class=\"normal\"><strong>siguiente >></strong></a>";
        }
        echo 
"<tr><td align=\"left\">".$textoAnterior."</td><td align=\"right\">".$textoSiguiente."<br /><br /></td><tr>";
    } 
Luego pongo todos los resultados que quiero que se muestren de vez. En este caso 10:

Código PHP:
<?
    
if(mysql_num_rows($result)){
        while (
$row=mysql_fetch_row($result)){ ?>
            <tr> 
                <td colspan="2"><? // colspan=2, para las celdas de los botones de anterior y siguiente ?>
                    <strong>nombre::</strong> <? echo $row[1]; ?><br />
                    <strong>e-mail::</strong> <a href="mailto:<? echo $row[2]; ?>" class="normal"><? echo $row[2]; ?></a><br />
                    <strong>comentario::</strong> <? echo nl2br($row[3]); ?><br /><br /><? // nl2br( ), cambia el salto de linea \n por <br /> ?>
                    <span class="fechaHora">enviado el <? echo $row[4]; ?> a las <? echo $row[5]; ?></span><br />
                </td>
              </tr>
          <? 
    } else { 
        echo 
"<tr><td>No hay ninguna firma</td></tr> ";
    } 
?>
Y finalmente pagino los resultados:

Código PHP:
echo paginar($pag$total$tampag"foro.php?pag="); 
El tema está en que cuando le doy por ejemplo a "siguiente" para que me cambie de página, en la barra de navegación me pone perfectamente la página a la que tiene que ir, en este caso: "foro.php?pag=2", pero me sigue mostrando los resultados de la primera página.

He revisado paso a paso la estructura, y ya les digo, lo encuentro todo bien. Lo que más me extraña es que en mi servidor local funciona perfectamente, y cuando lo cuelgo no. Espero que alguien de ustedes me pueda ayudar. Gracias.
  #2 (permalink)  
Antiguo 08/08/2006, 19:45
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
me suena a problema de register_globals(). Es decir, que en tu local está habilitado, y por eso podés trabajar con las variables de la url directamente con su nombre ($pag en vez de $_GET['pag']), mientras que en el servidor no.

Probá cambiando las referencias a $pag por $_GET['pag'] en estas líneas:
Código PHP:
   if (!isset([b]$pag[/b])) { 
        
$reg1 0
        
$pag 1// Por defecto, pagina 1 
    
} else { 
        
$reg1 = ([b]$pag[/b]-1) * $tampag// Cálculo de la posición de inicio para la consulta siguiente 
    


Saludos.
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 00:47.