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

PHP & Base de données Discussion :

Syntaxe requête base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Points : 61
    Points
    61
    Par défaut Syntaxe requête base de données
    Salut à tous,
    j'effectue une requete de liaison entre 2 tables, avec une commande du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from table1 left outer join table2
    	on table1.champ=table2.champ
    	where table1.champ like '%$searchterm%'
    mais ensuite, quand je veux accéder au champs d'une ligne de la réponse à ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row=mysql_fetch_array($result);
    ,

    je ne sais pas comment faire pour nommer un champ qui existe à la fois dans les 2 tables sous le même nom (mais sur lequel n'est pas fait la liaison), sans écrire le numéro de la place du champ dans la requête croisée.

    C'est à dire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=right>".$row[6]."</td>";
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=right>".$row[table1.nom]."</td>";
    par exemple si nom est un champ qui existe dans table1 et dans table2 (mais sur lequel on n'effectue pas la liaison).

    Quelle est la syntaxe correcte pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=right>".$row[table1.nom]."</td>";
    ???



    Mathieu

  2. #2
    Membre actif Avatar de Sceener
    Inscrit en
    Mai 2007
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 231
    Points : 228
    Points
    228
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=right>".$row[table1.nom]."</td>";
    normalement table1.nom entre ""


  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 551
    Points
    8 551
    Billets dans le blog
    17
    Par défaut
    Pour éviter tout conflit il faut utiliser AS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ALL table1.champ1 AS table1Champ1, table2.champ1 AS table2Champ1
    FROM ...
    Ensuite pour y accéder :

    Etc.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Points : 61
    Points
    61
    Par défaut
    Salut,

    Sceener, ça ne fonctionne pas.

    Séb, ce qui tu dis fonctionne, mais le problème, c'est comment fait-on si on a quelque chose comme 80 champs dans une table, et qu'on ne souhaite pas tous les énumérer???

    Cordialement

    Mathieu

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Points : 84
    Points
    84
    Par défaut Renommer le champ doublon
    Faire quelque chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select table1.* , table2.* , table2.nom_champ_doublon as nom_champ_doublon2 
    from table1 left outer join table2
    	on table1.champ=table2.champ
    	where table1.champ like '%$searchterm%'
    ce qui rajoute à ton set une colonne nom_champ_doublon2

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Points : 61
    Points
    61
    Par défaut
    kodeya tu es un génie!!!
    ça marche impec

    Merci à tous

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

Discussions similaires

  1. requête base de donné SqlServerCe
    Par moustiqu3 dans le forum C#
    Réponses: 2
    Dernier message: 19/04/2010, 20h37
  2. [Typo3] Requête base de données
    Par humanbeings dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 23/10/2009, 15h42
  3. Requête sur base de données ACCESS
    Par JLamotte dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 10h50
  4. Requête sur plusieurs bases de données
    Par Oluha dans le forum ASP
    Réponses: 8
    Dernier message: 14/10/2005, 14h57
  5. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

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