Autor
|
Tema: Panel de novedades como en Facebook (Leído 2,337 veces)
|
javirk
Desconectado
Mensajes: 102
|
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?
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
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
|
|
|
En línea
|
|
|
|
javirk
Desconectado
Mensajes: 102
|
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!
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
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
|
|
|
En línea
|
|
|
|
javirk
Desconectado
Mensajes: 102
|
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!
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
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
|
|
|
En línea
|
|
|
|
javirk
Desconectado
Mensajes: 102
|
Anda, pues tienes razón, gracias. No había usado nunca lo de WHERE EXISTS y ni lo había pensado jaja
Un saludo!
|
|
|
En línea
|
|
|
|
|
|