Bonjour, j'ai un petit problème de condition assez simple je pense, pourtant je ne trouve pas la solution.
Je veux modifier ma navbar selon le type d'utilisateur.
J'ai donc créé une méthode
public function userGroup() {
$req = $this->db->prepare('SELECT id_userstype
FROM users
WHERE id_userstype
= :id_userstype ');
$req->bindValue(':id_userstype', $this->id_userstype, PDO::PARAM_INT);
$req->execute();
return $req->fetch(PDO::FETCH_OBJ);
}
Dans mon controller j'ai ensuite instancié mon objet, puis
$userGroup = $users->userGroup();
Dans ma vue, j'ai mis if ($userGroups = 2){ avec ce que je voulais mettre dedans, suivit d'un else.
Seulement ça m'affiche uniquement ce qu'il y a dans le if, mais peu importe l'id de userGroup. J'ai lancé le débuggueur et ça ne me le récupère pas, il est égal à 0.
Quelqu'un peut-il m'aider svp ?
Salut,
Je ne sais pas si c'est un faute de frappe ou juste un exemple mais pour tester un égalité il faut utiliser == ( ou === pour tester en plus le type), sur ton exemple tu as mis que un seul = ce qui rend la condition toujours vrai (tu assignes la valeur 2 à userGroups).
Visiblement tu as aussi un autre problème pour récuperer la valeur de id_userstype, hésites pas à mettre un peu plus de code pour qu'on puisse t'aider à débugger !
Bonjour.
Pour ma part je ne comprend pas l'intérêt de retourner un enregistrement avec comme seul nom de colonne de la table, la condition sur la colonne qu'on lui passe.
C'est comme si tu disais, je connais la valeur de cette colonne de la table, mais fais une requête SQL pour me la retourner.
Donc à mon avis tu dois déjà te tromper sur le nom de la colonne de la table dont tu veux récupérer sa valeur, de plus qu'en retour de ta méthode, tu ne récupère pas que la valeur de la colonne de l'enregistrement récupéré, mais l'enregistrement lui même, il te faut donc faire ta condition dans ta vue sur la propriété qui correspond au nom de la colonne et non juste sur la variable $userGroup
, sauf si tu modifies le retour de la méthode et que tu renvois directement la valeur de la propriété correspondante.