Foros del Web » Programando para Internet » PHP »

Cómo realizar esta consulta a Mysql

Estas en el tema de Cómo realizar esta consulta a Mysql en el foro de PHP en Foros del Web. Hola, quería saber como hacer esta consulta a MySQL: Tengo 2 tablas: Favoritos y fotos . * La tabla favoritos contiene 2 campos: usuario y ...
  #1 (permalink)  
Antiguo 21/03/2008, 16:53
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Pregunta Cómo realizar esta consulta a Mysql

Hola, quería saber como hacer esta consulta a MySQL:

Tengo 2 tablas: Favoritos y fotos.

* La tabla favoritos contiene 2 campos: usuario y favorito.

* La tabla fotos contiene estos campos: usuario y fecha_post (es un timestamp)

Primero quiero obtener los favoritos de un determinado usuario, lo que lo hago así:

SELECT favorito FROM favoritos WHERE usuario='$usuario'

pero el problema es que quiero ordenar los datos que me devuelve esa consulta teniendo en cuenta la fecha de la ultima foto que subio, y este dato (fecha_post) se encuentra en la tabla fotos. Cómo podría hacerlo?

Gracias
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #2 (permalink)  
Antiguo 21/03/2008, 17:37
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
De acuerdo Re: Cómo realizar esta consulta a Mysql

Saludos

Pienso que lo podrias realizar de la siguiente manera:

Cita:
SELECT fa.favorito,fo.fecha_post
FROM favoritos fa,fotos fo
WHERE fa.usuario=fo.usuario AND
fo.usuario='$usuario' ORDER BY fo.fecha_post DESC
Prueba y si algo lo comentas..


Hasta Pronto!!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 21/03/2008, 17:41
 
Fecha de Ingreso: marzo-2008
Ubicación: SanTelmo City
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Cómo realizar esta consulta a Mysql

Buenas tardes, esta consulta te daria los resultados ordenados por fecha descendente de un usuario

Código PHP:
$qry="select fo.fecha_post from tabla_fotos fo inner join tabla_favoritos fa on fo.usuario=fa.usuario where fa.usuario='$usuario' order by fa.fecha_post  desc" 

Si lo que quieras es ver la ultima fecha de un usuario tenes que reemplazar fo.fecha por top(fo.fecha)

Saludos
  #4 (permalink)  
Antiguo 21/03/2008, 18:13
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Cómo realizar esta consulta a Mysql

Gracias Nano_ y synkro por su ayuda. Me fue de gran utilidad.

El código es el siguiente (le hice unas pequeñas modificaciones al de Nano_)

Código:
SELECT fa.favorito, fo.fecha_post
FROM favoritos fa, fotos fo
WHERE fa.favorito = fo.usuario
AND fa.usuario = 'hernan'
ORDER BY fo.fecha_post DESC
Nuevamente gracias
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #5 (permalink)  
Antiguo 21/03/2008, 20:57
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Cómo realizar esta consulta a Mysql

Me surgió otro problema:

En la tabla fotos se guarda la fecha (en el campo fecha_post) de todas las imágenes que subió el usuario. Por lo que al ejecutar la consultar anterior me devuelvee el resultaddo que pueden ver en la imagen:



Link a imagen: http://img411.imageshack.us/img411/7610/sqlpd5.jpg

Lo que quiero es que se muestre la fecha del post más reciente. Solo debería mostrar una fecha por usuario.

Gracias nuevamente.
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/

Última edición por hgp147; 21/03/2008 a las 21:06
  #6 (permalink)  
Antiguo 21/03/2008, 22:19
 
Fecha de Ingreso: marzo-2008
Ubicación: SanTelmo City
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Cómo realizar esta consulta a Mysql

Si queres solo la utlima fecha proba con esta consulta
Código:
SELECT fa.favorito, fo.fecha_post
FROM favoritos fa, fotos fo
WHERE fa.favorito = fo.usuario
AND fa.usuario = 'hernan'
ORDER BY fo.fecha_post DESC limit 1

Al tener ordenado en forma descendente te mostrara el ultimo resultado, si queres ver los ultimos 10 cambias 1 por 10

Espero que te sea util, Saludos
  #7 (permalink)  
Antiguo 25/03/2008, 18:51
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Cómo realizar esta consulta a Mysql

Gracias. Pero lo que quiero es que me de como resultado lo que esta en la imagen pero que no me muestre el que tiene la X. Es decir que solo muestre el ultimo de cada usuario. GRacias nuevamente.
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
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 12:29.