|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Bonjour à toute la communauté,
Apres avoir passé du temps à chercher ma réponse a travers le net, je me tourne vers vous pour tenter de résoudre, mais surtout comprendre mon probleme. Tout d'abord, je tiens a préciser que je suis un grand débutant, et que je tente d'apprendre par moi même => le code est peut etre un peu "crade" et pas forcément bien structuré, veuillez m'en excuser. Rentrons dans le vif du sujet si vous le voulez bien. Je me connecte donc a ma DB (j'ai un fichier global.asa pour ça ) Ensuite, je fais une premiere requete sur ma base pour lister et ordonner les valeurs dans un tableau HTML Code :
Suite à ceci, c'est là qu'intervient mon problème : je souhaite faire une deuxieme requete sur ma base à partir des résultat que je viens d'avoir et que j'ai stocké dans un tableau. Concretement, j'ai des valeurs dans la derniere colonne de mon tableau, qui sont associées à des noms dans une autre table. Je voudrai donc pouvoir faire un "Select SECNom From SECListe Where Secteur = '" & secteur1 & "'" et ainsi afficher le nom correspondant au nombre (ceci pour but d'éviter les case ou if...else if. Si je n'ai pas été assez clair (voire pas du tout :p) merci de me le signaler. Je vous remercie par avance pour toutes les réponses que vous pourrez m'apporter. |
||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Développeur informatique Inscription : janvier 2011 Messages : 309 ![]() |
Salut,
Tu veux chaque SECNom pour chaque secteur1 ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Exactement, sachant que SECNom se trouve sur une table différente de ma premiere requête.
1ere requete => Table = ATCListe 2eme requete => Table = SECLISTE |
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Développeur informatique Inscription : janvier 2011 Messages : 309 ![]() |
Pourquoi ne pas faire une deuxième requête avec une jointure entre ATCLISTE et SECLISTE ?
Code ASP :
Ainsi tu as le nom te chaque Secteur pour chaque secteur de ATCListe |
||
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 805 ![]() |
Bonjour,
A mon avis, la solution est de ne faire qu'une seule requête avec une jointure entre tes deux tables. Citation:
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Je fini de gérer mon intervention et je teste ça ensuite. Merci en tous cas pour vos réponses rapides.
Je me renseigne également en parallèle sur les jointures que je ne maitrise mais alors absolument pas du tout... |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Alors je me retrouve cette fois ci avec un BOF or EOF = true ou bien le RS a été supprimé.
Pas de set rs = nothing en vue. J'ai fait cette requete, apres avoir lu les jointure : Code :
req2 = "select SECNom From SECLISTE INNER JOIN ATCLISTE ON SECLISTE.Secteur = ATCLISTE.Secteur WHERE ATCLISTE.Secteur = "
Le souci, c'est qu'en ne faisant qu'une seule requete, comme préconisé par pc75, je n'aurais à ma disposition que SECnom, hors je souhaite également afficher le contenu de ma table ATCLISTE. A quel moment dois-je donc placer cette requete? Au tout début du code, en suivant la premiere requete Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Voila, je viens en fin de compte de me creuser les méninges un peu plus pour arriver à avoir mon resultat escompté.
je link ici le code, si jamais ça peut servir, mais Tumoo et PC75 (que je remercie pour leur aide!) ont déjà dit le principal. Code :
(mieux vaut tard que jamais ...)
|
||
|
|
00
|
|
|
#9 | ||||
|
Membre expérimenté
![]() Développeur informatique Inscription : janvier 2011 Messages : 309 ![]() |
Tu peux faire ça en une seule requête quand même et c'est mieux je pense.
En fait, tu veux un résultat de ce type ? ATCNom ATCPrenom ATCCode ATCTel ATCMachine NomSecteur ---------------------------------------------------------------------- avec les 5 premières colonnes provenant de ATCListe et la dernière est le nom du secteur provenant de SECListe, c'est bien ça ? Est ce que chaque ATC.Secteur a un nom qui lui correspond ? C'est à dire, peut-il y avoir un numéro de secteur qui n'a pas de nom dans la table SECListe ? Si chaque secteur a un nom, alors tu peux utiliser un INNER JOIN, sinon, il te faut un OUTER JOIN. Ta requête sera alors Code SQL :
(INNER JOIN ou LEFT OUTER JOIN en fonction de ma question précédente.) Ta requête, tu la places avant ton WHILE. Pour parcourir son résultat, tu tests s'il y a des enregistrements Code :
Je pense que là tu as tout ^^ |
||||
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Impeccable Tumoo, pas forcément facile de faire comprendre aux autres ce que l'on cherche à obtenir.
En effet, j'ai bien compris que l'inner est plus pratique lorsque j'ai aucune valeur en NULL dans ma table à "jointer" Merci également pour l'astuce du rst(x) qui est bien plus pratique! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com