IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Affichage de données sql liées par une clé externe


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Points : 33
    Points
    33
    Par défaut Affichage de données sql liées par une clé externe
    Bonjour,

    J'ai un souci dans une Jsp avec l'affichage des données extraites de 2 tables liées entre elles par une clé externe.

    Je m'explique.

    Imaginons une table APPLICATIONS, constituée d'un Identifiant unique, d'un Domaine, et d'un Sous Domaine.

    Pour afficher cette table, je fais donc un traitement du genre :

    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
    String requete = "select * from applications";
    ResultSet resultat = null;
    resultat = accesBdd.selection(requete);
    while (resultat.next()){
    %>
    	<tr>
    		<td>
    			<%
                            out.println(resultat.getString(1));
                            %>
    		</td>
    		<td>
    			<%
                            out.println(resultat.getString(2));
                            %>
    		</td>
    		<td>
    			<%
                            out.println(resultat.getString(3));
                            %>
    		</td>
     
    	</tr>
    <%
    Jusque là tout va bien.

    Imaginons à présent une table UTILISATEURS, dans laquelle on trouve un Identifiant unique, un nom d'Utilisateur, puis l'identifiant d'une des applications contenue dans la table APPLICATIONS.

    Dans ce cas là, je voudrais afficher les champs Identifiant, Utilisateur, puis, non pas l'identifiant vers APPLICATIONS, mais Domaine et Sous Domaine...

    J'avais tenté un truc du genre :

    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
    String requete = "select * from utilisateurs";
    ResultSet resultat = null;
    resultat = accesBdd.selection(requete);
    while (resultat.next()){
    %>
    	<tr>
    		<td>
    			<%
                            out.println(resultat.getString(1));
                            %>
    		</td>
    		<td>
    			<%
                            out.println(resultat.getString(2));
                            %>
    		</td>
    		<td>
    			<%
                            String requete2 = "select * from applications where identifiant = " + resultat.getString(3);
                                          ResultSet resultat2 = null;
                                          resultat2 = accesBdd.selection(requete2);
                                          resultat2.next();
                                          out.println(resultat2.getString(2));
                            %>
    		</td>
    		<td>
    			<%
                                          out.println(resultat2.getString(3));
                            %>
    		</td>
     
    	</tr>
    <%
    Ca fonctionne, mais c'est pas vraiment très "propre", enfin je pense...

    Comment procéderiez-vous pour améliorer cette gestion croisée ?

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ton problème vient du SQL pour moi.

    Pourquoi ne pas faire une unique requête qui te récupère directement tous les résultats voulus ?

    du genre :
    select id_user, nom_user, id_domaine, nom_domaine
    from user, applications
    where user.id_domaine = application.id_domaine

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Bien vu ageur, je me suis bêtement compliqué la vie...



    Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Tables SQL liées par une date
    Par Aiglichon dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/04/2013, 17h05
  2. Réponses: 6
    Dernier message: 28/12/2011, 12h00
  3. affichage des enregistrements qui commencent par une lettre donnée
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/10/2011, 09h08
  4. Réponses: 9
    Dernier message: 14/09/2009, 18h35
  5. Réponses: 5
    Dernier message: 14/03/2007, 00h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo