Foros del Web » Programando para Internet » PHP »

Anterior y Siguiente ID, si existe...

Estas en el tema de Anterior y Siguiente ID, si existe... en el foro de PHP en Foros del Web. hola, gente, como estan, soy yo otra vez... quiero preguntar una cosa que me tiene loco hace ya bastante tiempo.... tengo una galeria de fotos, ...
  #1 (permalink)  
Antiguo 24/12/2004, 14:53
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
Anterior y Siguiente ID, si existe...

hola, gente, como estan, soy yo otra vez...

quiero preguntar una cosa que me tiene loco hace ya bastante tiempo....

tengo una galeria de fotos, que cuando vean la foto en grande puedan en ese mismo lugar ver la foto anterior y posterior...

el id de la foto es idfoto...

en un ejemplo es idfoto=102, pero hay ids q se pierden porque se eliminan o que... entonces si le pongo idfoto + 1, me caga... porque me manda un id que no existe....

Saludos.
__________________
Ignacio
  #2 (permalink)  
Antiguo 24/12/2004, 15:13
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Puedes hacer algo como esto:
Para la anterior a la 102:
Código PHP:
$sql "SELECT * FROM tabla WHERE idfoto<102 ORDER BY idfoto desc LIMIT 0,1"
Para la siguiente a la 102:
Código PHP:
$sql "SELECT * FROM tabla WHERE idfoto>102 ORDER BY idfoto asc LIMIT 0,1"
Saludos
  #3 (permalink)  
Antiguo 28/12/2004, 12:42
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
Código PHP:
 <?php
$tabla 
$dbPref."fotosboliche";

$consulta1 mysql_query("SELECT * FROM $tabla WHERE idfoto < $idfoto ORDER BY idfoto desc LIMIT 0,1") or errormysql_error() );; 
$renglon1 mysql_fetch_array$consulta1 );

$consulta2 mysql_query("SELECT * FROM $tabla WHERE idfoto > $idfoto ORDER BY idfoto asc LIMIT 0,1") or errormysql_error() );; 
$renglon2 mysql_fetch_array$consulta2 );

?>
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon1[idfoto];?>">Anterior</a></p>
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon2[idfoto];?>">Siguiente</a></p>
no me toma el id de la foto... desde la url...
__________________
Ignacio
  #4 (permalink)  
Antiguo 28/12/2004, 12:56
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Código PHP:
 <?php
 
//Recap
 
$idfoto=$_GET['idfoto']; 
 
/* Necesitas esta instrucción para extraer desde lo declarado
 las variables GET*/
 
 
$tabla $dbPref."fotosboliche";
 
$consulta1 mysql_query("SELECT * FROM $tabla WHERE idfoto < $idfoto ORDER BY idfoto desc LIMIT 0,1") or errormysql_error() );; 
 
$renglon1 mysql_fetch_array$consulta1 );
 
 
$consulta2 mysql_query("SELECT * FROM $tabla WHERE idfoto > $idfoto ORDER BY idfoto asc LIMIT 0,1") or errormysql_error() );; 
 
$renglon2 mysql_fetch_array$consulta2 );
 
 
?>
 <p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon1[idfoto];?>">Anterior</a></p>
 <p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon2[idfoto];?>">Siguiente</a></p>
  #5 (permalink)  
Antiguo 28/12/2004, 13:00
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
no, si yo no estoy haciendo ningun post ni get...

fijate aca http://v2.neorosario.com/foto.php?idfoto=920

debajo de la foto pongo el anterior y posterior... pero no me toma el id... desde la url... se entiende mas ahi?

Saludos.
__________________
Ignacio
  #6 (permalink)  
Antiguo 28/12/2004, 13:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ignacio_giri .. ese "?idfoto=n°" ya es un "GET" .. es decir . debese tomar ese valor como referencia que es tu ID origina para obtener el ID siguiente y el anterior a base de las consultas SQL que te han propuesto (o similares).

Un saludo,
  #7 (permalink)  
Antiguo 28/12/2004, 13:14
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Intenta lo que te decimos, y verás que te va a salir...
  #8 (permalink)  
Antiguo 28/12/2004, 13:42
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
listo, andubo perfecto el error:

mal:

Código PHP:
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon1[idfoto];?>">Anterior</a></p>
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php $renglon2[idfoto];?>">Siguiente</a></p>

bien:
Código PHP:
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php echo $renglon1[idfoto];?>">Anterior</a></p>
<p class="mini2"><a class="mini2" href="foto.php?idfoto=<?php echo $renglon2[idfoto];?>">Siguiente</a></p>
Conclusion: faltaba un misero "echo"...

y ahora como le puedo poner comienzo y fin de id comparandolo con otra tabla, que es la tabla de la galeria de imagenes?, porque si pongo anterior y posterior me pasa por todas las galerias...

Saludos y gracias a todos.
__________________
Ignacio
  #9 (permalink)  
Antiguo 28/12/2004, 13:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Fija la galería que estás recorriendo con un condicional mas:

WHERE idfoto < $idfoto AND idgaleria='$idgaleria' ORDER

y .. como esa galería será una variable .. añadela en tus links de siguiente/anterior

(ahora .. lo que no sé es como relacionas tus tablas .. algo así?:

id_foto
id_galeria
foto ...
etc...
)

Un saludo,
  #10 (permalink)  
Antiguo 28/12/2004, 13:49
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
ahhhh, no te doy datos y me solucionas el problema al toque... que calidad Cluster...

un saludo para vos Cluster y para lado2Mx, cuando termine el sitio, les muestro bien como quedo y en la parte de agradecimientos voy a poner sus nombres

y despues vamos a organizar un concurso entre los usuarios de forosdelweb y mi sitio para ver quien se da cuenta primero de donde saque los scripts, el 40% de la programacion de mi sitio esta hecha con forosdelweb

Saludos y gracias, son unos genios y despues voy a armar una faq con este problema que seguro no soy el unico
__________________
Ignacio
  #11 (permalink)  
Antiguo 28/12/2004, 13:59
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
ÚLTIMA:

Cluster, puse el condicional, anda perfecto... y ahora cuando es la primera foto de la galeria no tiene que mostrar el anterior y cuando es la foto ultima de la foto no tiene que mostrar el siguiente...
__________________
Ignacio
  #12 (permalink)  
Antiguo 28/12/2004, 14:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm En ese caso habría que obtener el menor y mayor ID para tu galería .. Para eso en SQL tienes las funciones MAX() y MIN() que debes aplicar junto con el filtrado "WHERE id_galeria='$id_galeria' ...

Pero .. esto habría que pensarlo mejor .. creo no está resultando "optimo" hacerlo así (aunque funcione).

Un saludo,
  #13 (permalink)  
Antiguo 28/12/2004, 14:33
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
cluster, te comento....

estube viendo... y cuando yo relacionaba las fotos con la galeria y cuando era la primera foto, no me tiraba el id para poner la anterior, entonces puse un condicional, que cuando haya id muestre, y cuando no haya no muestre...

funciona perfecto, y creo que es mejor este sistema que usar MAX() y MIN()

no se que dices tu...

Saludos.
__________________
Ignacio
  #14 (permalink)  
Antiguo 28/12/2004, 15:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, si es así .. mejor todavía.

Un saludo,
  #15 (permalink)  
Antiguo 28/12/2004, 17:15
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Eso te iba a decir ignacio, pero vi que si salió, salu2
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:17.