Bonjour à tous,
Ma problèmatique est la suivante :
J'ai pour mon trombinoscope 4 tables :
Collaborateur
id | nom
++++++++++++++
1 | pierre
++++++++++++++
2 | paul
++++++++++++++
3 | jacques
Fonction
id | nom_fonction
+++++++++++++++++
1 | technicien
+++++++++++++++++
2 | responsable
+++++++++++++++++
3 | chef agence
Agence
id | nom_agence
+++++++++++++++++
1 | agence nord
+++++++++++++++++
2 | agence est
+++++++++++++++++
3 | agence sud
Collaboration
id | id_collaborateur | id_fonction | id_agence
+++++++++++++++++++++++++++++++++++++++++++++++
1 | 1 | 1 | 1
+++++++++++++++++++++++++++++++++++++++++++++++
2 | 1 | 2 | 1
+++++++++++++++++++++++++++++++++++++++++++++++
3 | 1 | 2 | 2
La table collaboration est en gros ma table de jointures. L'exemple ci-dessus montre que Pierre est technicien dans l'agence nord, et est responsable dans deux agences : l'agence nord et l'agence est.
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 var RS_collaborateur = Server.CreateObject("ADODB.RecordSet"); var RS_collaboration = Server.CreateObject("ADODB.RecordSet"); var RS_fonction = Server.CreateObject("ADODB.RecordSet"); var RS_agence = Server.CreateObject("ADODB.RecordSet"); var req = "SELECT nom FROM collaborateur"; RS_collaborateur.Open(req,conn,3,1); while (!RS_collaborateur.EOF) { Response.Write("<strong>"+RS_collaborateur("nom")+" :</strong><br />"); req = "SELECT * FROM collaboration WHERE (id_collaborateur='"+RS_collaborateur("id")+"')"; RS_collaboration.Open(req,conn,3,1); while (!RS_collaboration.EOF) { req = "SELECT nom_fonction FROM fonction WHERE (id='"+RS_collaboration("id_fonction")+"')"; RS_fonction.Open(req,conn,3,1); Response.Write(RS_fonction("nom_fonction")+" -> "); RS_fonction.Close; req = "SELECT nom_agence FROM agence WHERE (id='"+RS_collaboration("id_agence")+"')"; RS_agence.Open(req,conn,3,1); Response.Write(RS_agence("nom_agence")+"<br />"); RS_agence.Close; RS_collaboration.MoveNext; } RS_collaboration.Close; RS_collaborateur.MoveNext; Response.Write("<br /><br />"); } RS_collaborateur.Close; }Pour commencer, est-ce que ma méthode d'autodidacte vous parrait correct où vous pensez que c'est trop lourd à afficher. Est- ce que ça serait pas mieux avec une jointure externe ?Affichage :
Pierre :
Technicien -> Agence nord
Responsable -> Agence nord
Responsable -> Agence est
Merci pour celui qui voudra bien se pencher sur mon problème de néophite![]()
Partager