requête php sur base champ booléen MySQL
Bonjour,
Désolée, je me suis trompée de forum, j'ai posé dans mysql. Donc je reposte ici...
Voilà mon soucis:
J'ai une base de données en mySQL gérée par phpmyadmin.
Je code en php le traitement du site.
Dans ma base j'ai une table tGroupeutilisateur qui fournit des indications sur les droits des utilisateurs. Dans cette table, j'ai les droits qui sont sont forme de booléens. Au départ jamais mis des tinyint(1). Mais quand je faisais une requête directement dans phpmyadmin
je recevais la valeur 'admin' comme réponse. Voici la requête:
Code:
SELECT 'admin' FROM 'tGroupeutilisateur' WHERE id =1
Depuis que j'ai changé le type de champs en bit, cette même requête me renvoie à présent la bonne valeur, à savoir 1.
Par contre avec mon code php, la valeur renvoyée et toujours le nom du champs et pas sa valeur. Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
// récupère de la clé du groupe utilisateur
$req_cle = $bdd_pdo->query("SELECT tGroupeutilisateur_id AS idgroupe FROM tUtilisateur WHERE identifiant ='" .$identifiant. "' AND motdepasse ='" .$motdepasse."'") or die(print_r($bdd_pdo->errorInfo()));
$data =$req_cle->fetch();
$req_cle->closeCursor();
// récupère de les droits dans la table groupe utilisateur
if($data['idgroupe'])
{
$idgroupe=$data['idgroupe'];
$req_droit=$bdd_pdo->query("SELECT '" .$droit. "' AS valdroit FROM tGroupeutilisateur WHERE id ='" .$idgroupe. "'") or die(print_r($bdd_pdo->errorInfo()));
$val_droit =$req_droit->fetch();
$req_droit->closeCursor();
// si le droit est ok retourne vrai
echo $val_droit['valdroit'];
return $val_droit['valdroit'];
} |
Dans ce code, la valeur de idgroupe est bien 1 et la valeur de la variable $droit est bien 'admin'. Par contre, le echo m'affiche 'admin' et pas 1.
Et du coup le return est toujours ok, même quand la valeur de 'admin' est à 0.
Je pense à un problème de type de variable passée dans la requête (idGroupe qui est un entier et que je passe en chaine de caractère par exemple). Mais je ne sais pas comment gérer et je ne suis pas sure que le problème vienne bien de là.
Quelqu'un aurait-il une idée, s'il vous plait?
Merci.