Foros del Web » Programando para Internet » PHP »

Una ayudita con una consulta facil ,bien explicada, que no me sale

Estas en el tema de Una ayudita con una consulta facil ,bien explicada, que no me sale en el foro de PHP en Foros del Web. Holas!! a ver si me ayudn con esta consulta que no me sale desde php. Puse la imagen par aque sea mas facil. Es para ...
  #1 (permalink)  
Antiguo 21/07/2008, 18:35
Avatar de nixspatin  
Fecha de Ingreso: mayo-2008
Mensajes: 113
Antigüedad: 15 años, 11 meses
Puntos: 0
Una ayudita con una consulta facil ,bien explicada, que no me sale

Holas!! a ver si me ayudn con esta consulta que no me sale desde php. Puse la imagen par aque sea mas facil.

Es para un sismtema de fotologs, vieron la parte que uno muestra los 5 amigos y favoritos.Pero siempre se muestra los amigos que agrego el usuario y ademas tienen que ser los ultimos en postear. En la tabla post se guardan los post con el comentario , a que id pertenece y ademas la fecha. Y en amigos_favoritos se guarda el id del usuario en cuestion y el amigo_id y amigo_user de el usuario que agrego.







Lo que yo quiero es recuperar el amigo_id de esos 5 amigos del usuario que postearon ultimos, pero segun la cosulta que yo hago ahi, va bien, pero si un usuario posteo dos veces seguidas, se corre el riesgo de que se muestren dos veces a le usuario ese en los amigos y favoritos y eso no es bueno.

Gracias desde ya

pd: vean la image a parte para que se lea bien...

Última edición por nixspatin; 21/07/2008 a las 18:36 Razón: faltaba una aclaracion
  #2 (permalink)  
Antiguo 21/07/2008, 18:59
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Hi !

Código PHP:
$query_ultimos_amigos "SELECT DISTINCT amigos_id FROM amigos_favoritos, post WHERE amigos_favoritos.id=".$id." AND post.id=amigos_favoritos.amigo_id ORDER BY post.fecha_post DESC LIMIT 5"
Espero te sirva! (Distintc sirve para eso justamente, selecciona indistitamente)

-ByE- !
__________________
--
Mi Portfolio Online! Visitalo!
--
  #3 (permalink)  
Antiguo 21/07/2008, 19:16
Avatar de nixspatin  
Fecha de Ingreso: mayo-2008
Mensajes: 113
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Gracias por molestarte en responder. Sabes, use distinct pero hubo algo raro, como que se descompaginaron las consultas.. mira, postee 4 veces en el mismo user, el user con id "9". luego probe la consulta que me dijiste con uno que lo tenia agregado a el:

usando distinct:


amigo_id

35
31
32
9

como se ve, el user 9 queda en ultimo lugar , cuand tendria que estar primero

pero sin usar distinct, si lo ordena bien:


amigo_id

9
9
9
9
32

sin embargo, se ve que claramente que aparece 4 veces el mismo usuario, cosa que hace que se vean 4 veces seguidas sus posteos.

snif, no me sale
  #4 (permalink)  
Antiguo 22/07/2008, 05:07
Avatar de nixspatin  
Fecha de Ingreso: mayo-2008
Mensajes: 113
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

snif, no me sale
  #5 (permalink)  
Antiguo 22/07/2008, 05:23
 
Fecha de Ingreso: julio-2008
Mensajes: 9
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Buenas has probado a poner ORDER BY?
  #6 (permalink)  
Antiguo 22/07/2008, 05:29
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Hola nixspatin

en principio la query que te pone proguri te deberia funcionar. La fecha en que formato la tienes? Prueba a ver si está en yyyy-mm-dd ya que pueda que sea eso y no te ordene correctamente.
  #7 (permalink)  
Antiguo 22/07/2008, 07:29
Avatar de nixspatin  
Fecha de Ingreso: mayo-2008
Mensajes: 113
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Gracias por contestarme. SI, puese order by desc, pero en vez de recuperar los 5 ditintos ordenados por fecha, me hace un lio y termina apareciendo posteos anteriores antes de los mas posteriores, osea, cambia el orden. Aparece si bien lo amigos de el, pero sin distint lo hace ordenadamente, aunque logico , repite en caso de que postee muchas veces seguidas; en cuanto agrego distinct ahi el orden se va y se mezclan por fecha.

Tengo la fecha en el formato datatime(2008-07-22 10:21:51) puede ser que por eso no funque?

me estoy desesperando.. xd!
  #8 (permalink)  
Antiguo 22/07/2008, 07:44
Avatar de nixspatin  
Fecha de Ingreso: mayo-2008
Mensajes: 113
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Para que lo vean les voy a mostrar los resultados de la base:

sin usar distinct, osea:

select amigo_id,fecha_post from amigos_favoritos,post where amigos_favoritos.id=9 and post.id=amigos_favoritos.amigo_id order by post.fecha_post desc limit 5;

amigo_id fecha_post

9 2008-07-22 10:21:51
32 2008-07-22 10:16:23
32 2008-07-22 10:13:21
32 2008-07-22 10:08:51
32 2008-07-22 10:07:32

aca sucede esto, porque poste con el usuario id=32 cuatro veces seguidas.


usando distinct,osea:


select distinct amigo_id from amigos_favoritos,post where amigos_favoritos.id=9 and post.id=amigos_favoritos.amigo_id order by post.fecha_post desc limit 5;


amigo_id

35
31
32
9


como ven, efectivamente los resultados no se repiten, pero el ultimo en postear fue el 9, no el 35! claramnete se ve cuando no use distinct en la consulta anterior, que el ultimo usuario en postear fue el 9, pero aca cambio al 35, que posteo incluso hace un dia.




Distinct me cambia el orden de los resultados.

y para que vean, les muestro un select general ordenado por fecha descendente:


id_post id id_multimedia texto_post fecha_post




176 9 238 videito de camila 2008-07-22 10:21:51

175 32 237 bikniii 2008-07-22 10:16:23

174 32 236 sdf 2008-07-22 10:13:21

173 32 235 vbcvbcxbcxvb 2008-07-22 10:08:51

172 32 234 lalal sonataaa 2008-07-22 10:07:32


  #9 (permalink)  
Antiguo 22/07/2008, 11:07
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Una ayudita con una consulta facil ,bien explicada, que no me sale

Hola de nuevo

Prueba con una consulta de tipo JOIN:

$query_ultimos_amigos = "SELECT DISTINCT amigos_id FROM amigos_favoritos INNER JOIN post ON amigos_favoritos.id=".$id." AND post.id=amigos_favoritos.amigo_id ORDER BY post.fecha_post DESC LIMIT 5";

De no funcionarte, no se. Yo he probado ha hacer una consulta sencilla y efectivamente, con order by desc sale primero el último que posteo por fecha. Mira a ver si con eso funciona
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 02:41.