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 :

Petit souci en SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Points : 24
    Points
    24
    Par défaut Petit souci en SQL
    Bonjour à tous, je viens vous voir car j'ai un probleme au niveau d'une requête SQL que j'essaie de monter... mais sans grand succès...

    Je m'explique.
    Je voudrais pouvoir créer une requête qui me permettrait de faire une recherche multicritères(via un moteur de recherche que j'ai créé ). C'est à dire que si en 'nom à rechercher' je tape la lettre 'Z', et que dans le champ correspondant au code postal je tape '13', je souhaiterais que ma requête ne me séléctionne QUE les entreprise se situant dans le 13, et dont les noms comportent la lettre 'Z'.

    Sauf que, n'étant pas très trés doué, la seule chose que j'ai réussi à faire, c'est de créer une requête à grands coups de 'OR' ... ce qui ne correspond pas à ce que je recherche, car lors de l'affichage de mes résultats, je vois bien affiché toutes les entreprises dont les noms comportent des 'Z', mais aussi toutes les entreprise se trouvant dans le 13 (meme si le nom ne comporte pas de 'Z' ).

    Voici ma requête :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    $requete = "
        SELECT raison_sociale, dirigeant, adresse, cp, region, ville, tel, telecopie, email, email2, code_naf, libelle_naf, rubrique_professionnelle
        FROM `liste` 
        WHERE
    ";
     
    	if ($raison != '')
    {
        $requete .= " raison_sociale LIKE '%$raison%' ";
    }
     
    if ($dirige != '')
    {
        $requete .= "OR dirigeant LIKE '%$dirige%' ";
    }
     
     
    if ($adresse != '')
    {
        $requete .= "OR adresse LIKE '%$adresse%' ";
    }
     
     
    if ($cp != '')
    {
        $requete .= "OR cp LIKE '%$cp%' ";
    }
     
     
    if ($region != '')
    {
        $requete .= "OR region LIKE '%$region%' ";
    }
     
    if ($ville != '')
    {
        $requete .= "OR ville LIKE '%$ville%' ";
    }
     
    if ($telephone != '')
    {
        $requete .= "OR tel LIKE '%$telephone%' ";
    }
     
    if ($telecopie != '')
    {
        $requete .= "OR telecopie LIKE '%$telecopie%' ";
    }
     
    if ($email != '')
    {
        $requete .= "OR email LIKE '%$email%' ";
    }
     
    if ($email2 != '')
    {
        $requete .= "OR email2 LIKE '%$email2%' ";
    }
     
    if ($code_naf != '')
    {
        $requete .= "OR code_naf LIKE '%$code_naf%' ";
    }
     
    if ($libelle_naf != '')
    {
        $requete .= "OR libelle_naf LIKE '%$libelle_naf%' ";
    }
     
    if ($rubrique_professionnelle != '')
    {
        $requete .= "OR rubrique_professionnelle LIKE '%$rubrique_professionnelle%' ";
    }
    ... j'espère que quelqu'un saura me répondre .

  2. #2
    Membre actif
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Points : 257
    Points
    257
    Par défaut
    Salut,

    j'ai pas lu ton post mais dans ce genre de requête composé il faut faire attention a pas que la condition WHERE tombe sur un OR directement.

    Personnellement je fais ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT raison_sociale, dirigeant, adresse, cp, region, ville, tel, telecopie, email, email2, code_naf, libelle_naf, rubrique_professionnelle
        FROM `liste` 
        WHERE 1!=1 /* et des OR partout */
    j'éditerai plus tard

    @+

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    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 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Tel que tu exprimes ton besoin, ce n'est pas un OR qu'il faut utiliser mais un AND...

  4. #4
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il te faut effectivement utiliser des AND et attention si la raison est nulle alors tu tomberais sur une requête commençant par un AND
    Rajoutes simplement une ligne de ce type et mais des AND pour tous .
    comme le soulignait justement Tidus

Discussions similaires

  1. Petit souci de sql
    Par ozthewizard dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/12/2011, 08h41
  2. Petit Soucis en logique de SQL
    Par H4rDBuG dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/04/2010, 14h06
  3. PETIT souci avec un editeur SQL
    Par cantador dans le forum Outils
    Réponses: 5
    Dernier message: 05/08/2008, 19h39
  4. [SQL] formulaire php/sql (liste déroulante) petit soucis
    Par koolgirl dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/03/2007, 21h21
  5. petit soucis de requete SQL
    Par graphicsxp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/02/2006, 16h38

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