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

Langage SQL Discussion :

Affichage par colonne


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut Affichage par colonne
    Bonjour,

    J'ai une question à laquelle je n'ai malheureusement pas trouvé de réponse, et j'espérais que vous pourriez peut-être m'aider :

    J'ai donc une table dans ma base de données qui est construite comme ceci:

    id | zone | nm | col_a | col_b
    00 | idx_ | me1 | obja_1 | objb_1
    01 | idx_ | me2 | obja_2 | objb_2
    02 | idx_ | me3 | obja_3 | objb_3
    03 | idx_ | me4 | obja_4 | objb_4
    04 | idx_ | me5 | obja_5 | objb_5
    05 | idx_ | me6 | obja_6 | objb_6

    Vous l'aurez compris, 1 enregistrement égal une ligne, et le nom des colonnes est en gras, comme d'habitude...

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT nm, $lg
     FROM lang 
    WHERE zone='idx_'
    Ou $lg correspondra soit à la col_a, soit à col_b

    ce que j'aimerais c'est pourvoir afficher la valeur d'une des deux colonnes, d'après la valeur du champ nm...

    Par exemple si lg = col_a et je choisis nm = me6, que cela m'affiche l'objet : objeta_6

    je pense que la solution ne doit pas être trop compliquée et que le code d'affichage ne devrait pas être trop long (c'est ce que je recherche aussi), mais ne sais pas comment faire, ni si cela est vraiment possible ?!

    Merci !

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT $lg
     FROM lang 
    WHERE zone='idx_' 
    AND nm='me6'
    rajoute la clause AND aprés le WHERE. Les lignes retournées devront satisfaire aux 2 conditions.
    ne fais pas le SELECT sur nm puisque tu le précises dans la condition

    Dans ce cas là :
    - si lg = col_a tu récupères obja_6
    - si lg = col_b tu récupères objb_6


    C'est ce que tu souhaitais ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Merci pour votre réponse, c'est vrai que comme cela ça jouerais...

    Mais mon problème est que j'aimerais pouvoir afficher les objets de la collone A ou la B d'après la valeur de $lg, mais j'aimerais pouvoir le faire sans devoir faire une requête à chaque mot...Je sais pas si c'est assez clair...

    Moi je pensais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $lg = $_GET['lang'];
    include('mysql_connect.php');
    $sql = "SELECT nom, $lg FROM lang WHERE zone='idx'";
    $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
    $data = mysql_fetch_array ($req);
    et pouvoir afficher mes mots par la suite comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <? echo $data['me6']; ?>
    <? echo $data['me5']; ?>...
    Et que le résultat soit :
    objeta_6
    objeta_5

    en fonction de $lg....

    Vous l'aurez compris c'est pour faire un site multilingue où les "objeta_6" correspondraient à un mot dans une langue... Mais ma conception de la table est peut être pas bien pensée... Je ne sais pas trop comment faire cela...

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Citation Envoyé par Louison

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT nom, $lg FROM lang WHERE zone='idx'";

    Il est où le champ nom dans ta table ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Excusez-moi, la table que j'ai présenté au début n'était qu'à titre d'exemple.... J'ai oublié de changer en montrant mon code...

    Le champ nom correspondrais à nm justement dans mon exemple, et les colonnes correspondent aux diférents mots traduits...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Personne ne sait-comment s'y prendre pour résoudre ce problème ? Ou alors n'avez vous pas compris ce que j'ai expliqué ? Ou c'est moi qui est complètement à coté de la plaque avec mes idées ??

    Je ne sais pas trop comment m'y prendre mais je pense qu'il doit y avoir une solution ou une alternative... Merci !

Discussions similaires

  1. affichage par colonne
    Par vince2005 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 14/04/2009, 23h15
  2. Affichage "grouper par colonne"
    Par gracouille dans le forum SharePoint
    Réponses: 0
    Dernier message: 27/05/2008, 16h30
  3. problème affichage par colonne (listview)
    Par skysee dans le forum C#
    Réponses: 2
    Dernier message: 19/09/2007, 12h32
  4. affichage de colonnes par la jonture des tables
    Par pinokio dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/04/2007, 08h27
  5. affichage colonne par colonne
    Par tjoce dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2005, 18h19

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