Compté le nombre de commentaire.

Résolu/Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - Modifié par flo39400 le 19/10/2016 à 14:30
jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 - 19 oct. 2016 à 15:10
Bonjour,

Voila j'aimerai pouvoir compté le nombre de commentaire par rapport a id_article qui ce trouve dans la table commentaires.
Le problème sais que la valeur affiche 0 a la fin je sais pas vraiment pourquoi...

Merci a vous.


<?php
$getid = htmlspecialchars($_GET['id']);
$totalcommentaireReq = $bdd->query("SELECT id FROM commentaires WHERE id_article = '.$getid.'");
 $totalcommentaire = $totalcommentaireReq->rowCount();

echo $totalcommentaire ;
echo "<br>";
echo $getid ;
?>


J'ai tester si sa me récupéré bien mon id_article via getid et oui ça fonctionne très bien.

A voir également:

1 réponse

jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 4 693
19 oct. 2016 à 14:28
Bonjour,

Comme indiqué dans le manuel PHP (https://www.php.net/manual/fr/pdostatement.rowcount.php ....

il ne faut pas utiliser rowCount


Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO::query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.



1
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
19 oct. 2016 à 14:37
Re,
J'ai tester ça:

$totalcommentaireReq = $bdd->query("SELECT COUNT(*) FROM commentaires WHERE id_article = '.$getid.'");
	$totalcommentaire = $totalcommentaireReq->fetchColumn();


Aucun changement, peu être attendre dans le serveur ce réveil car parfois il est long pour prendre en compte les modifications.

Puis j'ai essayer ça aussi:

$totalcommentaireReq = $bdd->query("SELECT COUNT(id) FROM commentaires WHERE id_article = '.$getid.'");
	$totalcommentaire = $totalcommentaireReq->fetchColumn();


Et la aussi valeur 0 a la fin :/
0
jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 4 693
19 oct. 2016 à 14:44
Regardes ta requête ... elle est fausse :

Remplaces par :
$sql = "SELECT COUNT(id) FROM commentaires WHERE id_article = '".$getid."'";
$bdd->query($sql);

ou par :
$sql = "SELECT COUNT(id) FROM commentaires WHERE id_article = '$getid'";
$bdd->query($sql);


Pour ce qui est de la récup de l'ID .. procède ainsi :
$getid = !empty($_GET['id']) ? $_GET['id'] : 0;
0
jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 4 693
19 oct. 2016 à 14:44
Je te conseille vivement d'activer également la gestion des erreurs PDO :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 19/10/2016 à 15:07
euh je viens d'essayer l'activation des erreurs PDO et ça fait peur, déjà pu de site une erreur directe je me dit sais pas étonnant vu que je fait beaucoup d'erreur d’inattention dans le code .

Donc je solutionne ce problème puis je vais activé les erreurs PDO mais la encore j'ai beaucoup de boulot vu que j'ai tous mis dans des fichiers différant.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21 > jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024
Modifié par flo39400 le 19/10/2016 à 15:05
Merci donc j'ai modifier ça fonctionne mais pouvez vous me dire quel est la différence entre ça:

$bdd->query("SELECT COUNT(*) FROM commentaires WHERE id_article = '$getid'");


Et ça:

$sql = "SELECT COUNT(id) FROM commentaires WHERE id_article = '$getid'";
$bdd->query($sql);


Dans celle-ci on met la requête dans une variable puis on exécute via query

Et l'autre on exécute directement la requête.

Si j'ai bien compris.
0