Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/02/2011, 19:29
Malekith
 
Fecha de Ingreso: abril-2006
Mensajes: 105
Antigüedad: 18 años
Puntos: 11
Respuesta: Aporto una solución y busco otra ;)

Por favor, moderadores, siento tanto mensajito, borren mi mensaje anterior.

Ahora aporto la solución que he conseguido (gracias meister, corregí algunos fallos en tu código y lo solucioné):

Código PHP:
<?

    
// RECOJES EL VALOR DE ID, PREVIAMENTE REVISAS QUE GET EXISTA
    // Y QUE SEA UN NÚMERO, DE CUALQUIER OTRA FORMA ID DEBE SER IGUAL A 0
    
$id = (int)$_GET['id']; // if isset(...
    
    // LA CONSULTA BUSCA EL ID, SACA EL NÚMERO ANTERIOR Y SIGUIENTE,
    
$query mysql_query("
        select
            *,
            (select max(id_foto) from galeria where id_foto < $id AND temagaleria LIKE $temagaleria) minimo,
            (select min(id_foto) from galeria where id_foto > $id AND temagaleria LIKE $temagaleria) maximo
        from galeria
        where id_foto = $id AND temagaleria LIKE $temagaleria"
);


    
$data mysql_fetch_array($query);
    if (
$data) {
        
// ...
        // MUESTRA LOS BOTONES DE NAVEGACIÓN CORRESPONDIENTES
        
if (!is_null($data['minimo'])) echo '<a href=index.php?seccion=imagen&id=' $data['minimo'] . ' title="Anterior"><img src="./images/flechaiz.png" border="0" width="36" alt="Anterior" /></a>';
        if (!
is_null($data['minimo']) && !is_null($data['maximo'])) echo ' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';
        if (!
is_null($data['maximo'])) echo '<a href=index.php?seccion=imagen&id=' $data['maximo'] . ' title="Siguiente"><img src="./images/flechade.png" border="0" width="36" alt="Siguiente" /></a>';
    } else {
        
// scream_VERY_loud();
        
        // SCREAM !!! ES BROMA. ALGUIEN SIGUIO UN ENLACE INVALIDO O
        // QUISO MANIPULAR EL URL, POR LO QUE EL REGISTRO NO EXISTE
        // BUSCA EL MENOR ID Y REDIRECCIONA PARA BUSCARLO.
        
$query mysql_query("
            select min(id_foto) minimo, count(*) cuenta
            from galeria"
);
 
        if (
$data) {
            if (
$data['cuenta'] != 0)
                
// SI HAY REGISTROS REDIRECCIONA PARA BUSCAR EL MENOR
                
header('Location: index.php?seccion=imagen&id=' $query['minimo']);
            } else {
                
// LA BASE DE DATOS ESTÁ VACIA
                // NOW_scream_VERY_loud();
            
}
        }

?>
La variable $temagaleria la definí antes del código que muestro, pero es simplemente mostrar el valor del campo temagaleria, o si queréis adaptar el código del nombre de la columna de vuestra tabla.

Muchas gracias a todos y espero que le sirva a alguien.

Un saludo