Fatal error: Cannot use object of type stdClass as array

[Fermé]
Signaler
-
Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
-
Bonjour,

Je suis en train de faire un système de commentaire et je buche sur une erreur: fatal error: Cannot use object of type stdClass as array

voici le code:
$comments = $sql->query("SELECT comments.com_text,users.username,users.rank FROM comments
INNER JOIN users ON users.id = comments.com_user_id		
WHERE comments.com_article_id = '$m' ORDER by com_date DESC ");

<?php foreach ($comments as $comment): ?>	
<?php if ($comment['rank'] < 50) {?> 
<div class="green">#<?php echo htmlspecialchars($comment->username); ?></div>
<?php } else { ?>
<div class="red">#<?php echo htmlspecialchars($comment->username); ?></div>
<?php } ?>
<?php endforeach ?>		



mon query est un fetchAll(PDO::FETCH_OBJ); , je pourrais contourner en faisant une deuxième requête qui serait de type fetchAll(PDO::FETCH_ASSOC) pour ne plus avoir d'erreur; mais j'aimerais a tout prix éviter de faire une deuxième requête , alors existe il un moyen de contourner ? merci beaucoup

2 réponses

Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
21
remplace :
$comment['rank']


par :
$comment->rank


Ou si ça ne fonctionne pas :
$comment->getRank();
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
6650
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 298
Bonjour

Avec

fetchAll(PDO::FETCH_OBJ);

ca vous restitue un objet:

<?php if ($comment->rank < 50) {?>

A+