vinsator
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention13 novembre 2006
-
13 oct. 2006 à 12:08
vinsator
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention13 novembre 2006
-
15 oct. 2006 à 22:04
Bonjour à tous,
J'ai besoin d'aide, j'espère que certains pourront m'aider, je suis bloqué, merci d'avance à tous :
Dans ma base j'ai 2 tables, "utilisateurs" et "documents"
UTILISATEURS
id
NiveauxDeDocuments
DOCUMENTS
id
NiveauDuDocument
Le champ NiveauxDeDocuments.UTILISATEURS contient plusieurs niveaux --> par ex "TI,TO,LB" etc...
Le champ NiveauDuDocument.DOCUMENTS contient son niveau --> par ex "TI"
Je souhaite que les utilisateurs ne voient que les documents dont ils ont les niveaux autorisés.
En fait j'ai besoin de faire l'inverse d'un LIKE
Soit :
SQL="SELECT * from UTILISATEURSwhere id=1"
Set rs=conn.Execute(SQL)
ListNiveaux=rs("NiveauxDeDocuments")
SQLDOCS="SELECT * from DOCUMENTS WHERE NiveauDuDocument (existe dans ListNiveaux, c la que je bloque)"
Merci d'avance pour toutes vos réponses, es-ce possible à faire en SQL ou peut être en ASP ? en tout cas je suis bloqué, votre aide me serais très précieuse.
tikrimi
Messages postés192Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 9 mars 20071 13 oct. 2006 à 12:27
Bonjour,
Il faut que tu utilise la clause IN
Je pense que SELECT * from DOCUMENTS WHERE NiveauDuDocument IN SELECT NiveauDuDocument FROM UTILASATEUR WHERE .... ta condition .... ça doit faire l'affaire
vinsator
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention13 novembre 2006 13 oct. 2006 à 15:41
Ok, bon il y a du mieux mais je n'arrive pas encore à ce que je veux.
Plus d'erreur dans la requete,
si
NiveauDeDocuments.UTILISATEURS=NiveauDuDocument.DOCUMENTS, j'ai bien mes résultats.
Par contre si NiveauDuDocument.DOCUMENT existe dans la chaine NiveauDeDocuments.UTILISATEURS je n'ai pas de résultats.
Pour simplifier, il me faudrait l'équivalent de :
NiveauDeDocument.UTILISATEURS LIKE NiveauDuDocument.DOCUMENT
tikrimi
Messages postés192Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 9 mars 20071 13 oct. 2006 à 16:13
Je viens de comprendre.
En fait tes tables sont mals pensées. Je doute que tu arrives à faire ce que tu veux faire en une requette... c'est le début de l'usine à gaz.
Si tu peux encore, utilises par exemple les tables suivantes :
Utilisateur id_utilisateur
Document
id_document
id_niveau
Niveau id_Niveau
Rel_UtilisateurNiveau
id_utilisateur
id_niveau
En utilisant ce schema de base, c'est beaucoup plus simple de retrouver les document qu'un utilisateur peut consulter en fonction de ses diférents niveaux.
vinsator
Messages postés24Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention13 novembre 2006 14 oct. 2006 à 11:05
Ok merci tikrimi pour tes infos, mais alors dans ma table Rel_UtilisateurNiveau
id_niveau pourra comporter plusieur niveaux ? Disons que je ne suis pas expert MYSQL, si tu pouvais m'expliquer comment faire la relation entre les 2 tables et ensuite pouvoir afficher les documents qu'un utilisateur peut consulter ce serait cool !
merci encore, je vois que je partais dans le mauvais sens mais comme tu vois j'ai encore besoin de ton aide !