Système de commentaires
MastercroW
Messages postés
1094
Date d'inscription
Statut
Membre
Dernière intervention
-
MastercroW Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
MastercroW Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Alors voilà, j'ai créer un système de commentaires, mais il ne reste plus qu'a compté combien de commentaires il y a et je suis bloqué.
Cela m'affiche 4 0 0 0 ==> 4 commentaires en base de donnée, si j'en rajouté un sa fait 5 0 0 0 etc ... Alors je voudrais à la place de 4 0 0 0 sa donne 4 commentaires,
PS : les 0 ne sont pas les même liens ( commentaires.php?id_news=2, commentaires.php?id_news=3, commentaires.php?id_news=4)
Je penses c'est parce que while($donnees = mysql_fetch_array($requete)) est en array
Que mettre à la place ?
Merci d'avance
Alors voilà, j'ai créer un système de commentaires, mais il ne reste plus qu'a compté combien de commentaires il y a et je suis bloqué.
<?php include ('includes/connexion.php'); $requete = mysql_query ("SELECT * FROM commentaires"); while($donnees = mysql_fetch_array($requete)) { echo'<a href="commentaires.php?id_news='.$donnees['id'].'">'; // On récupère l'id de la news $id = $donnees['id']; // Connexion à la BDD $connect = mysql_connect('localhost', 'root', ''); mysql_select_db('others'); // On fait une requête pour compter le nbre de commentaires de la news correspondant à l'id $comm = mysql_query("SELECT COUNT(*) AS nbre_comm FROM commentaires WHERE id_news='" . $id ."'"); $retour = mysql_fetch_array($comm); $nbre_comm = $retour['nbre_comm']; // Déconnexion mysql_close($connect); // On affiche le nombre de commentaires retourné par la requête echo $nbre_comm; } ?> </a>
Cela m'affiche 4 0 0 0 ==> 4 commentaires en base de donnée, si j'en rajouté un sa fait 5 0 0 0 etc ... Alors je voudrais à la place de 4 0 0 0 sa donne 4 commentaires,
PS : les 0 ne sont pas les même liens ( commentaires.php?id_news=2, commentaires.php?id_news=3, commentaires.php?id_news=4)
Je penses c'est parce que while($donnees = mysql_fetch_array($requete)) est en array
Que mettre à la place ?
Merci d'avance
A voir également:
- Système de commentaires
- Restauration systeme windows 10 - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
- Cloner disque systeme - Guide
- Comment refaire le système d'un ordinateur - Guide
6 réponses
Bonjour,
Essaye en mettant :
Essaye en mettant :
$comm = mysql_query("SELECT COUNT(id_news) AS nbre_comm FROM commentaires WHERE id_news='" . $id ."'");
Si vous ne voulez pas reprendre mon codage, je vous donne ce qu'il faut :
Compté le nombre de commentaires(id) par news (id_news).
Compté le nombre de commentaires(id) par news (id_news).
<?php include ('includes/connexion.php'); $requete = mysql_query ("SELECT [[id_news]] FROM commentaires"); while($donnees = mysql_fetch_array($requete)) { echo'<a href="commentaires.php?id_news='.$donnees['id'].'">'; // On récupère l'id de la news $id = $donnees['id']; // Connexion à la BDD $connect = mysql_connect('localhost', 'root', ''); mysql_select_db('others'); // On fait une requête pour compter le nbre de commentaires de la news correspondant à l'id $comm = mysql_query("SELECT COUNT([[ID des commentaires]]) AS nbre_comm FROM commentaires WHERE id_news='" . $id ."'"); $retour = mysql_fetch_array($comm); $nbre_comm = $retour['nbre_comm']; // Déconnexion mysql_close($connect); // On affiche le nombre de commentaires retourné par la requête echo $nbre_comm; } ?>
Petite remarque en passant, il n'est pas recommandé d'utiliser l'étoile dans les requête MySQL, c'est une question d'optimisation, il faut plutôt sélectionner tous les champs dont on a besoin.
Pour ce qui est de ton problème, je crois que l'erreur est dans la première requête où tu sélectionnes tout depuis la table commentaires. Donc, tu sélectionne tous tes commentaires et non les id_news que tu veux mettre dans le lien.
Peut être que je me trompe, mais il est difficile de répondre sans une idée claire de la structure de la base de données.
Bonsoir Sonia, voilà mon erreur : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given on line 5 : while($donnees = mysql_fetch_array($requete))
De plus j'ajoute les 2 tables :
De plus j'ajoute les 2 tables :
CREATE TABLE 'news' ( 'id' int(11) NOT NULL AUTO_INCREMENT, 'titre' varchar(255) DEFAULT NULL, 'auteur' varchar(255) DEFAULT NULL, 'premier' varchar(125) DEFAULT NULL, 'texte' varchar(1500) DEFAULT NULL, 'jours' text, 'numero' text, 'mois' text, 'annee' text, UNIQUE KEY 'id' ('id') ) ENGINE=MyISAM AUTO_INCREMENT=36 DEFAULT CHARSET=latin1
CREATE TABLE 'commentaires' ( 'id' int(5) NOT NULL AUTO_INCREMENT, 'id_news' int(5) NOT NULL, 'auteur' varchar(50) NOT NULL, 'commentaire' varchar(100) NOT NULL, 'email' varchar(100) NOT NULL, 'jours' text, 'numero' text, 'mois' text, 'annee' text, PRIMARY KEY ('id') ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Puisque tu veux le nombre de commentaire si j'ai bien compris ta demande. Si j'ai faux, hésite pas à me le dire ;-)