[SQL] Aide pour une requete SQL
antjac
Messages postés
6
Statut
Membre
-
Catwowan -
Catwowan -
Bonjour,
J'ai un problème pour une requete que je n'arrive absolument pas à écrire.
Il s'agit en fait d'une requete de vérification de mot de passe et de droits.
Si le login et le mot de passe est bon et si le usr_adm_flg est égal à 2 il passe
sinon si le login et le mot de passe est bon, que le usr_adm_flg est égal à 1 et que l'utilisateur rentré est bien responsable de la filière il passe.
J'ai donc 2 tables :
Une table utilisateur :
usr_id usr_lgn usr_pass usr_form_flg usr_adm_flg
1 test test 1 1
2 guillaum guilaum 0 0
3 antoine antoine 1 2
4 Fatih fatih 0 1
Une table droits :
droits_id droits_user droits_fil
1 1 1
2 4 2
Le résultat de la requete doit renvoyer 1 si la connexion est valide, 0 sinon
Mon but est que après avoir entré le mot de passe et le login ainsi que le nom de la filière à éditer (mais je renvoi le numéro) je puisse faire cette vérification. Comment faire ?
J'avais tenté ça :
SELECT count( usr_id ) AS verifexist
FROM utilisateurs, droits
WHERE usr_lgn = 'antoine'
AND usr_pass = 'antoine'
AND (
usr_adm_flg =2
OR (
usr_adm_flg =1
AND droits_user = (
SELECT usr_id
FROM utilisateurs
WHERE usr_lgn = 'antoine' )
AND droits_fil =1
)
)
AND droits.droits_user = utilisateurs.usr_id
mais ça ne marche pas, la requete renvoi invariablement 0
Merci
J'ai un problème pour une requete que je n'arrive absolument pas à écrire.
Il s'agit en fait d'une requete de vérification de mot de passe et de droits.
Si le login et le mot de passe est bon et si le usr_adm_flg est égal à 2 il passe
sinon si le login et le mot de passe est bon, que le usr_adm_flg est égal à 1 et que l'utilisateur rentré est bien responsable de la filière il passe.
J'ai donc 2 tables :
Une table utilisateur :
usr_id usr_lgn usr_pass usr_form_flg usr_adm_flg
1 test test 1 1
2 guillaum guilaum 0 0
3 antoine antoine 1 2
4 Fatih fatih 0 1
Une table droits :
droits_id droits_user droits_fil
1 1 1
2 4 2
Le résultat de la requete doit renvoyer 1 si la connexion est valide, 0 sinon
Mon but est que après avoir entré le mot de passe et le login ainsi que le nom de la filière à éditer (mais je renvoi le numéro) je puisse faire cette vérification. Comment faire ?
J'avais tenté ça :
SELECT count( usr_id ) AS verifexist
FROM utilisateurs, droits
WHERE usr_lgn = 'antoine'
AND usr_pass = 'antoine'
AND (
usr_adm_flg =2
OR (
usr_adm_flg =1
AND droits_user = (
SELECT usr_id
FROM utilisateurs
WHERE usr_lgn = 'antoine' )
AND droits_fil =1
)
)
AND droits.droits_user = utilisateurs.usr_id
mais ça ne marche pas, la requete renvoi invariablement 0
Merci
A voir également:
- [SQL] Aide pour une requete SQL
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
4 réponses
select usr_adm_flg from (
select usr_lgn, usr_pass, usr_adm_flg from #user u left join #droit d on u.usr_id = d.droits_user) x
where usr_lgn = 'test' and usr_pass = 'test'
select usr_lgn, usr_pass, usr_adm_flg from #user u left join #droit d on u.usr_id = d.droits_user) x
where usr_lgn = 'test' and usr_pass = 'test'
Merci mais dans ta réponse tu ne testes pas si dans le cas ou usr_adm_flg=1 la personn est bien reliée dans droits pour un droit_fil donné