Système de commentaires
MastercroW
Messages postés
1259
Statut
Membre
-
MastercroW Messages postés 1259 Statut Membre -
MastercroW Messages postés 1259 Statut Membre -
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
- Vérificateur des fichiers système - Guide
- 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
- 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
$comm = mysql_query("SELECT COUNT(id) AS nbre_comm FROM commentaires WHERE id_news='" . $id ."'");Puisque tu veux le nombre de commentaire si j'ai bien compris ta demande. Si j'ai faux, hésite pas à me le dire ;-)