elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Panel de novedades como en Facebook
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Panel de novedades como en Facebook  (Leído 2,328 veces)
javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Panel de novedades como en Facebook
« 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?


En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #1 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


En línea

javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #2 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!
En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #3 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
En línea

javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #4 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!
En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #5 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
En línea

javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Re: Panel de novedades como en Facebook
« Respuesta #6 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines