Ver Mensaje Individual
  #13 (permalink)  
Antiguo 12/02/2010, 01:29
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: << anterior / siguiente >> en PHP - Ayuda

Hola,

Posiblemente así está mas claro,
pseudo-codigo:

Código PHP:
Ver original
  1. <?php
  2.     // RECOJES EL VALOR DE ID, PREVIAMENTE REVISAS QUE GET EXISTA
  3.     // Y QUE SEA UN NÚMERO, DE CUALQUIER OTRA FORMA ID DEBE SER IGUAL A 0
  4.     $id = (int)$_GET['id']; // if isset(...
  5.    
  6.     // LA CONSULTA BUSCA EL ID, SACA EL NÚMERO ANTERIOR Y SIGUIENTE,
  7.     $query = mysql_query("
  8.        select
  9.            *,
  10.            (select max(id) from pijeta where id < $id) minimo,
  11.            (select min(id) from pijeta where id > $id) maximo
  12.        from pijeta
  13.        where id = $id", ...);
  14.     $data = mysql_fetch_array($query);
  15.     if ($data) {
  16.         // ...
  17.         // MUESTRA LOS BOTONES DE NAVEGACIÓN CORRESPONDIENTES
  18.         if (!is_null($data['minimo'])) echo '<a href=fotos.php?id=' . $data['minimo'] . '>Anterior</a>';
  19.         if (!is_null($data['minimo']) && !is_null($data['maximo'])) echo ' / ';
  20.         if (!is_null($data['maximo'])) echo '<a href=fotos.php?id=' . $data['maximo'] . '>Siguiente</a>';
  21.     } else {
  22.         // scream_VERY_loud();
  23.        
  24.         // SCREAM !!! ES BROMA. ALGUIEN SIGUIO UN ENLACE INVALIDO O
  25.         // QUISO MANIPULAR EL URL, POR LO QUE EL REGISTRO NO EXISTE
  26.         // BUSCA EL MENOR ID Y REDIRECCIONA PARA BUSCARLO.
  27.         $query = mysql_query("
  28.             select min(id) minimo, count(*) cuenta
  29.             from pijeta", ...);
  30.  
  31.         if ($data) {
  32.             if ($data['cuenta'] != 0)
  33.                 // SI HAY REGISTROS REDIRECCIONA PARA BUSCAR EL MENOR
  34.                 header('Location: http://www.example.com/thisfile.php?id=' . $query['minimo']);
  35.             } else {
  36.                 // LA BASE DE DATOS ESTÁ VACIA
  37.                 // NOW_scream_VERY_loud();
  38.             }
  39.         }
  40.     }
  41. ?>
Saludos,