Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Otra QUERY algo difícil!!!.

Estas en el tema de Otra QUERY algo difícil!!!. en el foro de Bases de Datos General en Foros del Web. hola,,, tengo el siguiente problema... en la tabla pics tengo todas las fotos de todos los usuarios, un usuario puede subir más de una foto, ...
  #1 (permalink)  
Antiguo 15/03/2005, 19:09
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 20 años, 4 meses
Puntos: 0
Otra QUERY algo difícil!!!.

hola,,, tengo el siguiente problema...

en la tabla pics tengo todas las fotos de todos los usuarios, un usuario puede subir más de una foto, la tabla pics tiene entre otros los siguientes campos...

idPic
idParent
...

el primero como ven es el id de la foto y el segundo es el id del usuario al que pertenece la foto que hace referencia a la tabla users....

conociendo el idPic y el idParent de una foto necesito saber los mismos datos de la foto que le sigue y los de la foto anterior a ella, tiene que cumplirse que el idParent sea el mismo para las tres fotos...

en conclusión, quiero saber si conociendo los datos de una foto de un usuario tiene foto anterior y foto siguiente para el mismo usuario.

me imagino se pueda crear una consulta que haga todo esto de una vez,, porque normalmente yo lo haría en varias consultas....

saludos
leo.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #2 (permalink)  
Antiguo 16/03/2005, 05:38
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 5 meses
Puntos: 2
La forma que tienes de hacer eso es ordenándolas y seleccionando la imagen por posición dentro de la lista ordenada.
Si es para el mismo usuario, el idParent, será siempre el mismo, sea cual sea la foto, así que lo que cambia es la imagen, por lo que la sentencia sql sería:
Código:
select idPic from tabla
where idParent=$idParent
order by idPic
limit n,m
donde n es la posición a seleccionar (0 es la primera) y m es el número de filas a seleccionar (en este caso parece que 1)
Si sabes la posición de la última imagen seleccionada, la anterior y la siguiente es fácil de obtenerla.

Quizá más sencillo (dependiendo del uso que quieras hacer) : usa el paginator de jpinedo. Esto te permite paginar un resultado y poder moverte hacia adelante y hacia atrás en las fotos. Siempre puedes hacer una página de un único elemento.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 18/03/2005, 06:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 20 años, 4 meses
Puntos: 0
En realidad esa query quedaría así..

SELECT idPic FROM pics WHERE idParent=$idParent AND idPic=$idPic ORDER BY idPic LIMIT n, m

pero con ello no obtengo lo que yo deseo, ya que me listaría los registros posteriores a idPic=$idPic y también necesito saber si la imagen idPic=$idPic tiene una imagen anterior en esa galería....
Resolví este problema haciendo dos consultas de la siguiente manera...

SELECT idPic FROM pics WHERE idParent = $idParent AND idPic <= $idPic ORDER BY idPic DESC LIMIT 0, 2

En esta primera consulta selecciono idPic=$idPic y idPic - 1 en caso de que exista... o sea, la imagen en cuestión y una imagen anterior a ella si existe.
Si me devuelve dos registros es que existe idPic=$idPic y tiene un idPic anterior a ella con iguales idParent.
Si me devuelve un registro es que existe idPic=$idPic y no tiene idPic anterior a ella.
Si no devuelve registros es que no existe idPic=$idPic y terminada la verificación.
Luego me falta comprobar que tenga una imagen anterior en caso de existir idPic=$idPic
realizamos la siguiente consulta.

SELECT idPic FROM pics WHERE idParent = $idParent AND idPic <= $idPic ORDER BY idPic DESC LIMIT 0, 1

Si devuelve un registro es que tiene un idPic siguiente a idPic=$idPic
Si no devuelve registros no tiene idPic siguiente..
Así funciona bien,, con dos consultas, pero yo quería saber si se puede hacer todo en una consulta...

saludos
leo.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.

Última edición por qbanos.com; 18/03/2005 a las 06:36
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:35.