Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Unir campos

Estas en el tema de Unir campos en el foro de Mysql en Foros del Web. Hola!, tengo una tabla llamada Comentarios que tiene los siguientes campos (id, id_tema, autor, comentario, fecha). Lo que deseo es notificarle al usuario los ultimos ...
  #1 (permalink)  
Antiguo 03/02/2014, 10:02
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Unir campos

Hola!, tengo una tabla llamada Comentarios que tiene los siguientes campos (id, id_tema, autor, comentario, fecha).

Lo que deseo es notificarle al usuario los ultimos comentarios desde su ultima conexion agrupandolo deacuerdo al tema como lo hace facebook ej:

Mario, Pedro y Juan han comentado en el tema....

he probado con:

Código SQL:
Ver original
  1. SELECT Autor, COUNT(*)
  2. FROM foro_comentarios
  3. GROUP BY id_tema
[/PHP]

pero me devuelve la cantidad de comentarios del usuario en cada tema. Estaria muy agradecido a quien pueda darme una ayuda!!. Gracias!!!

Última edición por gnzsoloyo; 03/02/2014 a las 10:16 Razón: MUY mal etiquetado SQL no es PHP.
  #2 (permalink)  
Antiguo 03/02/2014, 10:06
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Unir campos

<saludo>
Uhm, y si en el query agregas un where que haga que traiga los comentarios de todos los usuarios menos de quien está revisando la cantidad de comentarios?
Pues el query que propones debe estar funcionando pues no tienes condiciones donde restringas algo en particular, solo que también debe estar trayendo los comentarios que hizo la persona que está viendo el conteo.
Si no es eso a lo que te quieres llegar, entonces intenta ser un poco más gráfico en lo que buscas para analizar el tema.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 03/02/2014, 10:27
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Unir campos

Hola mortiprogramador!, me gusto la etiqueta saludos!!

Te comento, yo tengo un sistema de foro donde los usuarios suben imagenes y los otros usuarios las comentan (cualquier parecido con facebook es pura coinicidencia).

En el sistema de notificaicones tengo:

Código SQL:
Ver original
  1. SELECT * FROM fomentarios WHERE fecha > $ultima_conexion

El problema con esto es que me genera lo siguiente:

Código:
Mario ha comentado en el tema "a"
Juan ha comentado en el tema "a"
Pedro ha comentado en el tema "a"
y lo que yo quiero es unir porque tanto Mario como Juan y como Pedro han comentado en el mismo tema asique son inecesarioas tantas filas, quiero poner:

Código:
Mario, Juan y Pedro han comentado en el tema "a"
Espero haya podido aclarar mejor la idea jejej. Aguardo tus comentarios!!


Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludo>
Uhm, y si en el query agregas un where que haga que traiga los comentarios de todos los usuarios menos de quien está revisando la cantidad de comentarios?
Pues el query que propones debe estar funcionando pues no tienes condiciones donde restringas algo en particular, solo que también debe estar trayendo los comentarios que hizo la persona que está viendo el conteo.
Si no es eso a lo que te quieres llegar, entonces intenta ser un poco más gráfico en lo que buscas para analizar el tema.
</saludo>
  #4 (permalink)  
Antiguo 03/02/2014, 10:34
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Unir campos

<saludo>
juasss, genial que te haya gustado!
En cuanto a lo que comentas, entonces tu asunto es tema de visualización.
Lo que podrías hacer es entonces no imprimir a medida que recorres
el resultado de la consulta quienes comentaron el tema, sino hacer lo siguiente.

1. En el query traer solo los nombres de las personas
2. En el recorrido de los resultados, tener una variable adicional que
vaya concatenando los nombres de las personas, separados por algún
caracter (la coma por ejemplo)
(Obviamente, ya sea en el recorrido o al final, debes evitar la última coma,
pues se pensaría que falta una persona cuando en realidad es por la concatenación que sobraría una coma)

3. Cuando se termine el recorrido, imprimir la variable adicional que ya tiene
concatenado todos los nombres.
Y voila!
Revisa eso y nos cuentas.
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 03/02/2014, 10:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Unir campos

Cita:
Iniciado por dunga007 Ver Mensaje
(...)
En el sistema de notificaicones tengo:

Código SQL:
Ver original
  1. SELECT * FROM fomentarios WHERE fecha > $ultima_conexion

El problema con esto es que me genera lo siguiente:

Código:
Mario ha comentado en el tema "a"
Juan ha comentado en el tema "a"
Pedro ha comentado en el tema "a"
y lo que yo quiero es unir porque tanto Mario como Juan y como Pedro han comentado en el mismo tema asique son inecesarioas tantas filas, quiero poner:

Código:
Mario, Juan y Pedro han comentado en el tema "a"
(...)
Eso no lo puedes hacer con una consulta con "SELECT *". Para lograrlo debes invocar los campos específicos y usar GROUP_CONCAT() en la columna donde identificas a los usuarios, o bien hacerlo por programación.
Si quieres una solución de programación te paso el post al foro del lenguaje, porque programación es OFF-TOPIC en los foros de bases de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, campos, select, tabla
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 12:02.