Cómo contar el número de comentarios y mostrarlos.

Resuelto
flo39400 Mensajes publicados 659 Estado Miembro -  
flo39400 Mensajes publicados 659 Estado Miembro -
Hola,

Tengo varios artículos, todos están almacenados en la base de datos en una tabla.
Tengo enlaces para cada artículo en función de su ID.
Los comentarios están todos ubicados en una tabla: "comentarios".

Así que este enlace se genera para cada artículo:
 <a href="afficher_com.php?id=<?php echo $donnees['news_id']; ?>" onclick="window.open(this.href); return false;">Comentario</a> 


Me gustaría mostrar el número de comentarios y agregar una S a comentario cuando sea superior a 1.

Gracias de antemano.

Configuración: Windows 10,
Intel core I7
32 Go de RAM
1 To HDD
512 Go SSD
Tarjeta gráfica NVIDIA® GeForce de la serie GTX700
conexión a internet óptima,...

1 respuesta

  1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     
    Hola,

    Puedes añadir un COUNT en tu consulta
    O hacer una segunda consulta que te dé el count
    O, si usas PDO, utilizar un FETCHALL y luego un COUNT (esta vez en php) sobre eso

    --
    Atentamente,
    Jordane
    0
    1. flo39400 Mensajes publicados 659 Estado Miembro 21
       
      Sí, quiero, pero no sé cómo formularlo.

      Tengo un mensaje de error:
      Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

      Mi código:

       $totalcommentaireReqID = $bdd->query("SELECT COUNT(*) FROM commentaires WHERE id_article = '$donnees['news_id']'"); $totalcommentaireID = $totalcommentaireReqID->fetchAll(); 
      0
    2. Usuario anónimo > flo39400 Mensajes publicados 659 Estado Miembro
       
      El error proviene de un mal uso entre las comillas simples y dobles, ya que abres comillas simples para tu id de artículo, pero también las usas para tu índice en tu tabla. Te aconsejo que almacenes tu id antes en una variable simple.

      $id_article = $donnees['news_id']; $totalcommentaireReqID = $bdd->query("SELECT COUNT(*) FROM commentaires WHERE id_article = '$id_article'"); $totalcommentaireID = $totalcommentaireReqID->fetchAll();
      0
    3. flo39400 Mensajes publicados 659 Estado Miembro 21
       
      Avanzo pero no logro mostrar el valor.

       <?php $articles = $bdd->query('SELECT * FROM news_tab_articles WHERE (news_publier = 1) ORDER BY news_id DESC LIMIT '.$depart.','.$articlesParPage); while($donnees = $articles->fetch(PDO::FETCH_ASSOC)) { ?> <p class="article_text"><?= $donnees['news_titre'] ?></p> <?= $donnees['news_contenu'] ?> <?php $id_article = $donnees['news_id']; $totalcommentaireReqID = $bdd->query("SELECT COUNT(*) FROM commentaires WHERE id_article = '$id_article'"); $totalcommentaireID = $totalcommentaireReqID->fetchAll(); ?> <div class="com"> <a href="afficher_com.php?id=<?php echo $donnees['news_id']; ?>" onclick="window.open(this.href); return false;"><?php echo $totalcommentaireID[0][0]; ?> Comentario</a> </div> <?php } $articles->closeCursor(); ?> 



      Mi <?php echo $totalcommentaireID; ?> que no va...
      0
    4. Usuario anónimo > flo39400 Mensajes publicados 659 Estado Miembro
       
      ¿Y si haces un var_dump de $totalcommentaireID, qué obtienes?

      var_dump($totalcommentaireID);
      0
    5. flo39400 Mensajes publicados 659 Estado Miembro 21
       
      Aquí:

      C:\wamp64\www\2017\baspage.php:43:
      array (tamaño=1)
      0 =>
      array (tamaño=1)
      'COUNT(*)' => cadena '3' (longitud=1)
      0