Creación de un blog. Me falta el código para visualizar los comentarios.

Hola.

Espero que alguien pueda ayudarme ya que me he quedado sin respuesta al problema que me plantea mi proyecto. No soy muy experto en php, pero en el punto que he llegado, creo que me voy defendiendo, puesto que he creado un blog de comentarios de noticias con php y mysql, y los usuarios registrados pueden comentarlos, con sus dos bases de datos relacionadas. Tengo también unas paginas de gestión para editar, modificar y eliminar registros y todo funciona perfectamente.

Ahora desearía que al final de cada noticia pueda ver el numero de comentarios asociados a ella, lo típico de "Ver 8 comentarios", y que cuando haga clic en el 8 se expanda un div con aquellos comentarios. Trabajo con Dreamweaver. Supongo que se necesita hacer un juego de registros con un COUNT de los comentarios de la misma noticia, y que el numero que los sume tenga un vínculo a la página que los muestre, que a su vez necesitará otro juego de registros. No se si voy correctamente.

Agradezco cualquier ayuda y si es el modelo del código que se necesita para cada cosa, mucho mejor.

Saludos.
Hola!

Según lo que has dicho, vas bien, porque debes usar COUNT. Qué es lo que no te funciona? Suponiendo que tienes dos tablas así:

 // Son ejemplos que quizás no sean exactamente iguales a lo que tú tienes :P
Noticia
id, titulo, contenido

Comentario
id, usuario_que_comenta, contenido, id_noticia (una referencia hacia Noticia.id)

Podrías crear una consulta así:

SELECT Noticia.id, Noticia.titulo, Noticia.contenido, COUNT(Comentario.id) AS CommentCount, Comentario.usuario_que_comenta, Comentario.Contenido FROM Noticia
INNER JOIN Comentario ON Noticia.id = Comentario.noticia_id
WHERE [condición]

Reemplazando condición con algo como

Noticia.id = N (N es un número) y/o
Noticia.titulo = 'Mi noticia'

De esta forma tendrías el conteo de comentarios como CommentCount.
Lo que ocurre es que la sintaxis está mal. COUNT debe contar una o más columnas y es una instrucción aparte, por lo que debe ir separada por una coma:

SELECT entradas.*, comentarios.*, COUNT(comentarios.IdComent) AS CuentaComentarios FROM entradas
INNER JOIN comentarios ON entradas.IdEntr = comentarios.IdEntr
WHERE [condicion];

Donde debe ser reemplazado por algo como strTitulo = 'titulo de la entrada'. Esa es la consulta que debes usar. Luego podrás usar $row_CountCom['CuentaComentarios'] en PHP.

Si sólo usas esta consulta:

SELECT *, COUNT(IdComent) AS CommentCount FROM comentarios

Obtendrás un conteo de todos los comentarios de la tabla, no sólo los relacionados con la entrada que buscas. Una forma de extraer sólo los comentarios relacionados con una entrada específica, en dos consultas en lugar de una (a diferencia de la anterior donde usé JOIN), sería esto:

SELECT *, COUNT(IdComent) AS CommentCount FROM comentarios WHERE IdEntr = N

Reemplazando la N por un número.
Hola,
Sale el mismo error de sintaxis que al inicio, aunque tengo la intuición de estar más cerca de la solución cada vez.

Teniendo en cuenta que quiero que al final de cada comentario salga un "Ver x comentarios", y que esto requiere una consulta que dé como resultado una variable que sea la x, y así me aparezca el número de comentarios. Y que a la vez que x que será un número, se convierta en un vinculo que me lleve a una relación de comentarios de aquella noticia en concreto. La pregunta es, ¿Si esto se puede hacer con una sola consulta? como me indicabas al principio, con el INNER JOIN. Si es así, he probado esto:

mysql_select_db($database_connecata, $connecata);
$query_BlogComNot = "SELECT entradas.*, comentarios.* COUNT(comentarios.IdComent) AS CommentCount FROM entradas INNER JOIN comentarios ON entradas.IdEntr = comentarios.IdEntr WHERE [comentarios.intValidacion = 1";
$BlogComNot = mysql_query($query_BlogComNot, $connecata) or die(mysql_error());
$row_BlogComNot = mysql_fetch_assoc($BlogComNot);
$totalRows_BlogComNot = mysql_num_rows($BlogComNot);

I esto me da error como decía al principio, seguro que hay algún error en esta sintaxis, ya me dirás.

También quisiera saber una cosa más, este número (de la variable) que me llevará por ejemplo a la página "vercomentarios.php", supongo que la llamada será mandando un identificador por GET, algo así como:

vercomentarios.php?Id, ¿Como mando este identificador? ¿Qué código he de poner?

Un saludo y mi agradecimiento por tus respuestas.
El error de sintaxis es porque te falta una coma después de comentarios.*:

$query_BlogComNot = "SELECT entradas.*, comentarios.*, COUNT(comentarios.IdComent) AS CommentCount FROM entradas INNER JOIN comentarios ON entradas.IdEntr = comentarios.IdEntr WHERE comentarios.intValidacion = 1";

Sobre la segunda pregunta, simplemente selecciona el id y después lo extraes con PHP:

$id_comentario = $query_BlogComNot['comentarios.id']; // Esto es asumiendo que sólo retorne una fila, de otra forma mostrará un error

Obviamente tendrás que construir los enlaces respectivos (<a href='vercomentarios.php?id=<?php echo $id_comentario'>Ver comentario</a>).
¿Si intento sacar el número de comentarios con esta llamada, <?php echo $totalRows_BlogComNot['IdEntr']; ?>, seria correcta?

Según el código que has mostrado, no, no es posible. Cuando realizas una consulta SQL, a través de PHP sólo puedes obtener los valores de las columnas que especificas entre SELECT y FROM. En tu caso, la consulta sólo tiene una columna, llamada comment. Bastaría con añadir las columnas que te faltan a la consulta y podrás acceder a ellas. Con la consulta que tienes actualmente sólo puedes leer la cantidad de comentarios por cada entrada, nada más.

Te dejo como tarea averiguar qué necesitas para hacer lo que quieres. Ya lo has hecho, así que deberías ser capaz de averiguarlo. Sólo debes hacer "consultas".
Tenias razón, finalmente funciona todo correctamente, solo me falta poner los divs, estilos, capas, etc. Cuando no se domina un tema se hace difícil perseverar hasta que al final llega la solución. Gracias.
Me alegro que lo hayas podido resolver :). Espero que hayas aprendido harto.

Saludos!
Yo también empece con Dreamweber y php, pero al fina tuve que pasarme a WP. Más rápido y con más posibilidades para proyectos personales.
Aunque aquello me sirvió de mucho.