Foros del Web » Programando para Internet » PHP »

Nuevos temas en foro

Estas en el tema de Nuevos temas en foro en el foro de PHP en Foros del Web. No es lo mio pedir ayuda si no darla, pero a veces la pereza y la falta de imaginación me impiden dar solución a muchos ...
  #1 (permalink)  
Antiguo 24/04/2009, 10:24
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Información Nuevos temas en foro

No es lo mio pedir ayuda si no darla, pero a veces la pereza y la falta de imaginación me impiden dar solución a muchos de mis problemas y es cuando tengo que recurrir a otros .

la cosa es que quiero diseñar mi propio foro, y uno de los problemas que se me presentaron es: cómo hago para que un usuario sepa cuales temas son nuevos para él, es decir, cuales temas son nuevos y él no ha leído?, cabe destacar la limitación --> if(temaNuevo and noLeidoPorUsuario), pues creo que el hecho de que solo se limite a temas no leídos sería más complicado, y se consideraría tema nuevo todo aquel que tenga menos de un mes desde su publicación, lo que había pensado era que en cada tabla de usuario se guardara una cadena que contenga los ID's de cada foro separado por comas, para luego manejarlas, pero no se... si cada usuario crea un tema, se modificarían los datos de todos los usuarios... creo que consumiría demasiado si pensamos en muchos usuarios, sin mencionar que la publicación de foros va también en función del numero de usuarios...

Y, si un usuario publica un post relativamente al mismo tiempo que otro, es muy probable que se pierdan datos, pues cada post editaría la base de datos, esto último se podría resolver bloqueando la columna, pero eso generaría un error en el otro usuario que postea, y bueno, controlamos el error y hacemos otra consulta, pero y si la cola se vuele muy larga?....

Bueno, no lo se, si quieren, aportenme nuevas formas, me ayudaría mucho, a mí y estoy seguro que a muchos de este foro.

Un saludo y gracias de antemano...
  #2 (permalink)  
Antiguo 24/04/2009, 12:06
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Nuevos temas en foro

Puedes hacerlo con una tabla en la BD tal que así:

Temas_vistos:
tID uID
1 1
2 1
3 1

Luego puedes leer esta tabla de la siguiente manera: El usuario cuya uID es 1 ha leído los temas 1, 2 y 3. El problema de esto es que sería una tabla enorme.

Otra solución es crear un campo en tu tabla usuarios llamado "temas_visto" y ahí añadirlos según el identificador del tema como un array, ejemplo:

Tabla TEMAS:
temaID contenido bla bla bla ....
1 La morsa artica...
2 El león marino vive casi toda su vida..
3 El pingüino emperador....

Tabla USUARIOS:
usuarioID email pass... etc..... temas_vistos
1 [email protected] djffsdf 1,2,3
2 f@hotm.. Ddfdfs 2,3

Una vez recuperados los datos del campo temas_vistos podrías recorrer el array y saber que temas ha visto y obviamente los que no están en la lista no han sido vistos.

Otra opción que tienes es instalarte un foro gratuito como phpbb, smf y ver como funciona su código para entender las soluciones que ellos idearon para ese "problema".
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
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 03:44.