Ver Mensaje Individual
  #8 (permalink)  
Antiguo 02/03/2011, 09:27
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: contar los valores repetidos de una tabla?

Hola de nuevo Urtcor:

Te sigo sugiriendo que leas algún manual de SQL, pues a pesar de que en los foros se te den algunas respuestas en la mayoría de las ocasiones deberás hacer ajustes a las consultas. No esperes que simplemente con copiar el código que te presentamos funcione todo de maravilla. Ojo con eso.

Estuve revisando la consulta que te puse de ejemplo y hay un error que podrías haber detectado si tuvieras un poco más de nociones de SQL. Si checas en el INNER JOIN tengo esto:

Código:
FROM comentarios T1
INNER JOIN usuarios T2 ON T1.idUsuario = T2.usuario 
Aquí está el error, ya que estoy igualando el ID del usuario con su nombre por lo tanto la consulta no marca ningún error, pero te regresa una consulta vacía.

De tal manera que lo correcto sería poner así:

Código:
FROM comentarios T1
INNER JOIN usuarios T2 ON T1.idUsuario = T2.idUsuario
Aquí te dejo una vista de la ejecución en la consola de MySQL. creo que debería de funcionar:

Código MySQL:
Ver original
  1. mysql> create table usuarios (idUsuario int, usuario varchar(50));
  2. Query OK, 0 rows affected (0.06 sec)
  3.  
  4. mysql> insert into usuarios values (1, 'Usuario UNO'), (2, 'Usuario DOS');
  5. Query OK, 2 rows affected (0.03 sec)
  6. Records: 2  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> select * from usuarios;
  9. +-----------+-------------+
  10. | idUsuario | usuario     |
  11. +-----------+-------------+
  12. |         1 | Usuario UNO |
  13. |         2 | Usuario DOS |
  14. +-----------+-------------+
  15. 2 rows in set (0.00 sec)
  16.  
  17. mysql> create table comentarios (idComentario int, comentario varchar (50), idUs
  18. uario int, fecha date);
  19. Query OK, 0 rows affected (0.06 sec)
  20.  
  21. mysql> insert into comentarios values (1, 'Comentario I', 1, curdate()), (2, 'Co
  22. mentario II', 1, curdate()), (3, 'Comentario III', 2, curdate());
  23. Query OK, 3 rows affected (0.03 sec)
  24. Records: 3  Duplicates: 0  Warnings: 0
  25.  
  26. mysql> select * from comentarios;
  27. +--------------+----------------+-----------+------------+
  28. | idComentario | comentario     | idUsuario | fecha      |
  29. +--------------+----------------+-----------+------------+
  30. |            1 | Comentario I   |         1 | 2011-03-02 |
  31. |            2 | Comentario II  |         1 | 2011-03-02 |
  32. |            3 | Comentario III |         2 | 2011-03-02 |
  33. +--------------+----------------+-----------+------------+
  34. 3 rows in set (0.00 sec)
  35.  
  36. mysql> SELECT T1.idUsuario, T2.usuario, count(*) as TotalComentarios
  37.     -> FROM comentarios T1
  38.     -> INNER JOIN usuarios T2 ON T1.idUsuario = T2.idUsuario
  39.     -> GROUP BY T1.idUsuario, T2.usuario
  40.     -> ORDER BY 3 DESC;
  41. +-----------+-------------+------------------+
  42. | idUsuario | usuario     | TotalComentarios |
  43. +-----------+-------------+------------------+
  44. |         1 | Usuario UNO |                2 |
  45. |         2 | Usuario DOS |                1 |
  46. +-----------+-------------+------------------+
  47. 2 rows in set (0.00 sec)

En cuanto a la parte de PHP, pues ahí si no puedo ayudarte, pues yo utilizo otro lenguaje de programación y no tengo conocimientos al respecto, pero te recuerdo que hay un foro exclusivo para PHP, por lo que puedes utilizarlo también para publicar tus dudas.

Saludos
Leo.