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 :

rechercher et afficher tous les champs contenus dans deux tables différentes.


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut rechercher et afficher tous les champs contenus dans deux tables différentes.


    j'ai créé une petite fonction qui reçoit en paramètre une chaine de caractères, et je veux rechercher et afficher les résultats dont le nom de la chaine se trouve dans les colonnes d'une des deux tables.

    Voila comment je m'y suis pris :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function rechercheMotCle($val){
    	$requete = "SELECT * 
    				FROM societe, testeur 
    				WHERE NumSociete = SocieteTesteur 
    				AND NomSociete = $val 
    				OR NomTesteur = $val";
    	return $requete;
    	}

    Problème, on me renvoie comme erreur
    Unknown column 'a' in 'where clause'
    si j'ai tapé a dans ma recherche...
    Je comprends mon erreur, mais je ne vois pas comment faire cette recherche.

    Pouvez vous m'aider?


  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    en mettant des quotes ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Bon ok j'avais oublié les ' ' autour de $val ...

    Par contre, je veux afficher les résultats contenant au moins une partie du mot tapé, j'ai donc pensé a encadrer $val par des %, mais ça ne fonctionne pas...

    Code Sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AND NomSociete = '%$val%' 
    OR NomTesteur = '%$val%' ";

    Une solution?


  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    en mettant des like ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Uhmm oui effectivement... je crois que je vais faire un peu de recherches avant de poster à la va vite

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Bon cette fois je ne vois vraiment pas, même en utilisant les LIKE et les IN, je n'arrive pas à afficher ce que je veux et pourtant j'ai cherché!

    Je veux afficher toutes les données des tables testeur et société dont le nom de la société contient au moins $val ou dont le nom du testeur contient au moins $val.

    Voila ma requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * 
    FROM societe, testeur 
    WHERE NumSociete = SocieteTesteur
    AND NomSociete IN (LIKE '%".$val."%') 
    OR NomTesteur IN (LIKE '%".$val."%')

    Je sais qu'il s'agit d'une erreur de syntaxe, mais je ne vois vraiment pas comment afficher mon résultat! Je pense que la manière de raisonner est bonne pourtant non?

    Y a-t-il quelqu'un pour m'aider?


  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,
    Comme ça peut etre?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * 
    FROM societe, testeur 
    WHERE NumSociete = SocieteTesteur
    AND (NomSociete LIKE '%".$val."%' OR NomTesteur LIKE '%".$val."%')

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 117
    Points : 28 494
    Points
    28 494
    Par défaut
    Et comme ça, ce serait encore mieux !!!
    Code sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  * 
    FROM    societe
        INNER JOIN
            testeur 
            ON  NumSociete = SocieteTesteur
    WHERE   NomSociete LIKE '%".$val."%'
        OR   NomTesteur LIKE '%".$val."%'

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci, c'est exactement comme ça que je voulais faire fonctionner ma requête!
    Donc il n'est pas possible de placer un LIKE dans un IN.

    Sinon, quelle est la différence entre vos deux requêtes proposées?

    En tous cas, merci beaucoup à tous!


  10. #10
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 117
    Points : 28 494
    Points
    28 494
    Par défaut
    Citation Envoyé par floctc Voir le message
    Sinon, quelle est la différence entre vos deux requêtes proposées?
    La seconde est normalisée et sépare les conditions de jointures des conditions de restriction

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci, je vais donc utiliser de préférence celle-là

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

Discussions similaires

  1. [AC-2003] afficher tous les critères contenus dans une zone de liste modifiable
    Par facteur dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/03/2014, 18h21
  2. Exclure tous les champs semblables entre deux tables
    Par Vink80 dans le forum Développement
    Réponses: 3
    Dernier message: 27/07/2012, 21h14
  3. Tous les champs SAUF dans une table.
    Par Yepazix dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/08/2005, 17h01
  4. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 11h31
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 18h11

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