Signaler

Compté le nombre de commentaire. [Résolu]

Posez votre question flo39400 352Messages postés mardi 8 avril 2008Date d'inscription 22 novembre 2016 Dernière intervention - Dernière réponse le 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.
Afficher la suite 
Utile
+1
moins plus
Bonjour,

Comme indiqué dans le manuel PHP (http://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.



jordane45 15438Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 8 décembre 2016 Dernière intervention - 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;
Répondre
flo39400 352Messages postés mardi 8 avril 2008Date d'inscription 22 novembre 2016 Dernière intervention - 19 oct. 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.
Répondre
jordane45 15438Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 8 décembre 2016 Dernière intervention - 19 oct. 2016 à 15:10
C'est juste plus propre
Répondre
jordane45 15438Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 8 décembre 2016 Dernière intervention - 19 oct. 2016 à 14:44
Je te conseille vivement d'activer également la gestion des erreurs PDO :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
Répondre
flo39400 352Messages postés mardi 8 avril 2008Date d'inscription 22 novembre 2016 Dernière intervention - 19 oct. 2016 à 14:55
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.
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !