Compteur commentaire php mysql
Résolu
l1738
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjours
j'ai un gros soucie voilà je cherche sur google et openclassroom
Je vous explique mon problème j'ai crée une liste de tâche avec un système de commentaire et mon problème c'est que j'arrive pas a trouver comment compter les commentaire car les commentaire et les tâches sont dans deux tables
l'image c'est la table des commentaires

Voila quand on rentre un commentaire ça enregistre id de la tâche maintenant j'aimerais compter le nombre de commentaire qui as l'id n°3
par exemple
et que ça apparais dans ma page d'accueil
et que ça marque La tâche 2 a X commentaire
pour vous aidez je voir mon problème voici ma page d'accueil
Merci à tous de votre aide
bonne soirée / journée
j'ai un gros soucie voilà je cherche sur google et openclassroom
Je vous explique mon problème j'ai crée une liste de tâche avec un système de commentaire et mon problème c'est que j'arrive pas a trouver comment compter les commentaire car les commentaire et les tâches sont dans deux tables
l'image c'est la table des commentaires

Voila quand on rentre un commentaire ça enregistre id de la tâche maintenant j'aimerais compter le nombre de commentaire qui as l'id n°3
par exemple
et que ça apparais dans ma page d'accueil
et que ça marque La tâche 2 a X commentaire
pour vous aidez je voir mon problème voici ma page d'accueil
<?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=***;dbname=*****', '******', '********'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // On récupère les 5 derniers billets $req = $bdd->query('SELECT id, titre, contenu, action, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets WHERE visible =0 OR visible=2 ORDER BY visible DESC'); while ($donnees = $req->fetch()) { ?> <div class="news"> <h3> <?php echo htmlspecialchars($donnees['titre']); ?> <em>le <?php echo $donnees['date_creation_fr']; ?></em> compte rendu <?php echo $donnees['action']; ?></em> tâche N°<?php echo $donnees['id']; ?> </h3> <p> <?php // On affiche le contenu du billet echo nl2br(htmlspecialchars($donnees['contenu'])); ?> <br /> <em><a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em> <a href="gest_dedi2.php?action=nn&id=<?php echo $donnees['id']; ?>">NON FAIS</a> </FONT> / <a href="gest_dedi2.php?action=ok&id=<?php echo $donnees['id']; ?>">TERMINER</a> / <a href="gest_dedi2.php?action=repor&id=<?php echo $donnees['id']; ?>">REPORTER</a> </p> </div> <?php } // Fin de la boucle des billets $req->closeCursor(); ?>
Merci à tous de votre aide
bonne soirée / journée
A voir également:
- Compteur commentaire php mysql
- Compteur électrique - Guide
- Compteur de contractions - Télécharger - Santé & Bien-être
- Commentaire word - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
6 réponses
Essaye plutôt cette requête, elle devrait te retourner le nombre exact de commentaires pour chaque billet :
$req = $bdd->query('SELECT b.id, b.titre, b.contenu, b.action, DATE_FORMAT(b.date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr, (SELECT count(*) FROM commentaires c WHERE c.id_billet = b.id) AS nbCommentaires FROM billets b WHERE visible =0 OR visible=2 ORDER BY visible DESC');
l1738
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
Super ça marche je doit vraiment apprendre a faire les jointures
Pitet
Messages postés
2826
Date d'inscription
Statut
Membre
Dernière intervention
527
Pour cette requête on utilise une sous-requête (SELECT dans le SELECT), mais oui les jointures te seront utiles dans d'autres cas ;)
Salut,
Une solution possible avec une jointure :
Bonne journée
Une solution possible avec une jointure :
$req = $bdd->query('SELECT b.id, b.titre, b.contenu, b.action, DATE_FORMAT(b.date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr, count(c.id) AS nbCommentaires FROM billets b LEFT JOIN commentaires c ON b.id = c.id_billet WHERE visible =0 OR visible=2 ORDER BY visible DESC');
Bonne journée
Si tu veux comprendre la requête, tu dois connaitres :
- les jointures : http://www.epershand.net/developpement/mysql-bdd/comprendre-jointures-inner-left-right-join-mysql
- la fonction count() : http://www.w3schools.com/sql/sql_func_count.asp
L'affichage du nombre de commentaires se fait comme pour les autres champs :
L'alias 'nbCommentaires' peut être modifié dans la requête : count(c.id) AS nbCommentaires
- les jointures : http://www.epershand.net/developpement/mysql-bdd/comprendre-jointures-inner-left-right-join-mysql
- la fonction count() : http://www.w3schools.com/sql/sql_func_count.asp
L'affichage du nombre de commentaires se fait comme pour les autres champs :
<?php echo $donnees['nbCommentaires']; ?>
L'alias 'nbCommentaires' peut être modifié dans la requête : count(c.id) AS nbCommentaires
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ça marche toujours pas le système que j'ai utiliser de base c'est ça
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/915379-tp-un-blog-avec-des-commentaires
et comme tu verra en dessous de chaque article on voir un commentaire et j'aimerais mettre
Article N°1
il y a X commentaire
Article N°2
il y a X commentaire
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/915379-tp-un-blog-avec-des-commentaires
et comme tu verra en dessous de chaque article on voir un commentaire et j'aimerais mettre
Article N°1
il y a X commentaire
Article N°2
il y a X commentaire