Foros del Web » Programando para Internet » PHP »

Problema al paginar

Estas en el tema de Problema al paginar en el foro de PHP en Foros del Web. Hola!! Tengo un código de paginación que me funcionaba hasta que he modificado una parte del código (mostrar el nombre de los colores en vez ...
  #1 (permalink)  
Antiguo 07/05/2008, 02:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema al paginar

Hola!!

Tengo un código de paginación que me funcionaba hasta que he modificado una parte del código (mostrar el nombre de los colores en vez del número) que no tiene nada que ver con la paginación.

Ahora lo que me hace es en la primera página mostrarme el enlace para ir a la siguiente (independientemente del número de productos a mostrar) y en las demás páginas me muestra el enlace para volver a la página anterior o pasar a la siguiente, aunque no tenga productos.

Os dejo el código porque yo no sé lo que falla ya que no he tocado nada de la paginación. Espero que me puedan ayudar porque me estoy volviendo loca.

Código PHP:
<?php
    
require_once("conexion.inc.php");
    
$conexion mysql_connect($servidor$usuario$passwd);
    
$db mysql_select_db($basedatos$conexion);
    if (!
$conexion)
    {
        echo 
"Error al establecer la conexión con la base de datos: " mysql_error();
        exit();
    }
    if (!
$db)
    {
        echo 
"Error seleccionando la base de datos: " mysql_error();
        exit();
    }
    
$resultado mysql_query("SELECT * FROM " $_GET["categoria"], $conexion);
    
$num_total mysql_fetch_row($resultado);
    
$num_filas 5;
    if (isset(
$_GET["desplazamiento"]))
        
$desplazamiento $_GET["desplazamiento"];
    else
        
$desplazamiento 0;
    
$resultado mysql_query("SELECT * FROM " $_GET["categoria"] . " LIMIT $desplazamiento, $num_filas"$conexion);
?>

<html>
<body bgcolor="#F5F5F5" topmargin="10">
<table width="836" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="836" bgcolor="#FFFFFF">
<?php
    
echo "<TABLE BORDER='1'>\n";
    echo 
"<TH width=160 height=20>Descripción</TH>\n";
    echo 
"<TH width=9 height=20 bgcolor=#F5F5F5></TH>\n";
    echo 
"<TH width=160 height=20>Colores</TH>\n";
    echo 
"<TH width=9 height=20 bgcolor=#F5F5F5></TH>\n";
    echo 
"<TH width=160 height=20>Codigo marcaje</TH>\n";
    echo 
"<TH width=9 height=20 bgcolor=#F5F5F5></TH>\n";
    echo 
"<TH width=160 height=20>Colores máximos</TH>\n";
    echo 
"<TH width=9 height=20 bgcolor=#F5F5F5></TH>\n";
    echo 
"<TH width=160 height=20>Imagen</TH>\n";
    while (
$fila mysql_fetch_array($resultado))
    {
        echo 
"<TR ALIGN='center' VALING='top'>";
        echo 
"<TD width=160 height=90><A HREF=\"producto.php?categoria=" $_GET["categoria"] . "&referencia=" $fila["referencia"] . "\">" $fila["descripcion"] . "</A></TD>\n";
        echo 
"<TD width=9 height=90 bgcolor=#F5F5F5></TH>\n";
        
$color explode("-"$fila["colores"]);
        
$total_color count ($color);
        echo 
"<TD width=160 height=90>";
        for (
$i=0$i<$total_color$i++)
        {
            
$nombres_color mysql_query("SELECT color FROM colores WHERE codigo = $color[$i]"$conexion);
            
$nom_color mysql_fetch_array($nombres_color);
            echo 
ucfirst($nom_color["color"]) . "<br>\n";
        }
        echo 
"</TD>";
        echo 
"<TD width=9 height=90 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=90>" $fila["codigo_marcaje"] . "</TD>\n";
        echo 
"<TD width=9 height=90 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=90>" $fila["colores_maximos"] . "</TD>\n";
        echo 
"<TD width=9 height=90 bgcolor=#F5F5F5></TH>\n";
        if (
file_exists("imagenes/" $fila["referencia"] . "_" $color[0] . ".jpg"))
        {
            echo 
"<TD width=160 height=90><A HREF=\"producto.php?categoria=" $_GET["categoria"] . "&referencia=" $fila["referencia"] . "\"><img src=\"imagenes/" $fila["referencia"] . "_" $color[0] . ".jpg\" width=90 height=90></A></TD>\n";
        }
        elseif (
file_exists("imagenes/" $fila["referencia"] . "_" $color[0] . "A.jpg"))
        {
            echo 
"<TD width=160 height=90><A HREF=\"producto.php?categoria=" $_GET["categoria"] . "&referencia=" $fila["referencia"] . "\"><img src=\"imagenes/" $fila["referencia"] . "_" $color[0] . "A.jpg\" width=90 height=90></A></TD>\n";
        }
        else
        {
            echo 
"<TD width=160 height=90><A HREF=\"producto.php?categoria=" $_GET["categoria"] . "&referencia=" $fila["referencia"] . "\"><img src=\"imagenes/" $fila["referencia"] . "_99.jpg\" width=90 height=90></A></TD>\n";
        }
        echo 
"</TR>\n";
    }
    echo 
"</TABLE>\n";
?>
</td>
</tr>
<tr>
<td>
<?php
    $urlAnt 
" ";
    
$urlPos " ";
    if (
$desplazamiento 0)
    {
        
$prev $desplazamiento $num_filas;
        
$urlAnt $_SERVER["PHP_SELF"] . "?categoria=" $_GET["categoria"] . "&desplazamiento=$prev";
    }
    if (
$num_total > ($desplazamiento $num_filas))
    {
        
$prox $desplazamiento $num_filas;
        
$urlPos $_SERVER["PHP_SELF"] . "?categoria=" $_GET["categoria"] . "&desplazamiento=$prox";
    }
    if ((
$urlAnt == " ") && ($urlPos == " "))
    {
        echo 
"<TABLE BORDER='1'>\n";
        echo 
"<TR ALIGN='center' VALIGN='top'>";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height20></TH>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"</TR>\n";
        echo 
"</TABLE>\n";
    }
    
// Primero siempre me hace la condición del if que viene a continuación y después siempre me hace el else
    
elseif (($urlAnt == " ") && ($urlPos != " "))
    {
        echo 
"<TABLE BORDER='1'>\n";
        echo 
"<TR ALIGN='center' VALIGN='top'>";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20><A HREF='$urlPos'>Próxima página</A></TD>\n";
        echo 
"</TR>\n";
        echo 
"</TABLE>\n";
    }
    elseif ((
$urlAnt != " ") && ($urlPos == " "))
    {
        echo 
"<TABLE BORDER='1'>\n";
        echo 
"<TR ALIGN='center' VALIGN='top'>";
        echo 
"<TD width=160 height=20><A HREF='$urlAnt'>Página anterior</A></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"</TR>\n";
        echo 
"</TABLE>\n";
    }
    else
    {
        echo 
"<TABLE BORDER='1'>\n";
        echo 
"<TR ALIGN='center' VALIGN='top'>";
        echo 
"<TD width=160 height=20><A HREF='$urlAnt'>Página anterior</A></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20></TD>\n";
        echo 
"<TD width=9 height=20 bgcolor=#F5F5F5></TH>\n";
        echo 
"<TD width=160 height=20><A HREF='$urlPos'>Próxima página</A></TD>\n";
        echo 
"</TR>\n";
        echo 
"</TABLE>\n";
    }
    
mysql_free_result($resultado);
    
mysql_close($conexion);
?>
</td>
</tr>
</table>
</body>
</html>
Muchas gracias a todos.
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 13:55.