Título: Panel de novedades como en Facebook Publicado por: javirk en 7 Septiembre 2012, 08:42 am Hola, llevo unos días pensando cómo hacer un panel de novedades como el que hay en Facebook, es decir, que te sale de cada persona lo que ha hecho últimamente y tal, pero no se me ocurre cómo puede estar hecho. ¿Alguna idea?
Título: Re: Panel de novedades como en Facebook Publicado por: s00rk en 10 Septiembre 2012, 19:25 pm Supongo que es algo que tu deseas hacer osea que no sea de facebook sino solo la idea de mostrar ultimas novedades, si es asi pues eso dependeria de 2 cosas que a mi parecer es a como facebook lo toma 1 es fecha de publicacion y otra el total de comentarios o likes que tiene esta entonces ya de ahi hacer una consulta mostrando y con ella misma ordenando de mayor a menor trascendencia.
Ejemplo sencillo Tabla user idUser usuario Tabla Publicaciones idPub idUser Titulo Fecha Likes Tabla Comentario idCom idPub idUser Comentario Fecha Y podria hacer una consulta algo como SELECT a.Titulo, a.idUser, b.Comentario, b.idUser FROM Publicaciones a INNER JOIN Comentario b ON a.idPub = b.idPub Order by a.Fecha DESC, a.Likes DESC, b.Fecha Bueno ahi seria algo sencillo ya tambien se podria agregar que muestre u ordene por la publicacion con mas comentarios o algo asi hehe xP Título: Re: Panel de novedades como en Facebook Publicado por: javirk en 12 Septiembre 2012, 10:20 am Hola, gracias a los dos por responder. Y sí, me refería a lo que dice s00rk, pero ¿y si además de comentarios quieres coger de otra tabla de amigos? ¿Crees que harán otra consulta distinta?, es decir, una para los comentarios y otra para los amigos?
Gracias y un saludo! Título: Re: Panel de novedades como en Facebook Publicado por: s00rk en 12 Septiembre 2012, 19:42 pm pues de amigos ya tendrias una tabla llamada emm
Amigos idAmigo idUser1 idUser2 y ya solo buscar o agregar en la consulta WHERE idUser1 = useractual OR idUser2 = useractual donde useractual es el id del usuario actualmente conectado, bueno espero darme a enatender xp Título: Re: Panel de novedades como en Facebook Publicado por: javirk en 12 Septiembre 2012, 20:14 pm Pero es que creo que eso no es del todo eficiente, tienes que hacer mínimo dos consultas por usuario, así que si muestras 10 usuarios tienes que hacer 20 consultas antes de cargar la página, yo creo que es demasiado, no?
Gracias! Título: Re: Panel de novedades como en Facebook Publicado por: s00rk en 13 Septiembre 2012, 03:16 am No, con una consulta bastaria, tomando como ejemplo las tablas que he puesto anteriormente, para mostrar las publicaciones con mas Likes, de amigos tuyos seria asi:
SELECT a.Titulo, a.idUser, b.Comentario, b.idUser FROM Publicaciones a INNER JOIN Comentario b ON a.idPub = b.idPub WHERE EXISTS (SELECT c.idAmigo FROM Amigos c WHERE (c.idUser1 = $userid AND c.idUser2 = a.idUser) OR (c.idUser2 = $userid AND c.idUser1 = a.idUser)) Order by a.Likes DESC Bueno pues algo asi seria la consulta, solo ahi pues cambiar lo de $userid, por el id del usuario logueado actualmente xP, ya con eso deberia mostrarte publicaciones de solo los amigos del que esta logueado Título: Re: Panel de novedades como en Facebook Publicado por: javirk en 14 Septiembre 2012, 08:13 am Anda, pues tienes razón, gracias. No había usado nunca lo de WHERE EXISTS y ni lo había pensado jaja
Un saludo! |