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 sql : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.