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 :

[SQL] Ma requête renvoie tous les tuples et ne respecte pas la condition AND


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut [SQL] Ma requête renvoie tous les tuples et ne respecte pas la condition AND
    Bonjour,

    La requête suivante est censée retourner tous les tuples dont le pays est identifié par la valeur 4 dans le champ pays de la table pageProGratuite :

    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
    SELECT 
    idMembre,
    ville,
    nom
    FROM pageProGratuite 
    WHERE 
    specialiteA='".$specialite."'
    OR
    specialiteB='".$specialite."'
    OR
    specialiteC='".$specialite."'
    OR
    specialiteD='".$specialite."'
    OR
    specialiteE='".$specialite."'
    AND pays=4
    AND fermer=0
    ORDER BY codePostal
    Mais ça me retourne tous les tuples, quelle que soit la valeur dans le champ 'pays'.

    Ca doit être un problème au niveau des OR ou AND etc...


    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Pas de rapport avec PHP donc c'est pas le bon forum mais à mon avis c'est un souci de priorité (exactement comme les + et les * dans les opérations), le AND pays=4 ne s'appliquant en fait que pour la spécialité5, il faut parenthéser tout ça au propre et ça ira peut-être mieux.

  3. #3
    Membre éclairé Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Par défaut
    enleve de ta requete les lignes sur les spécialités

    pour n'avoir plus que la requete suivante:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT idMembre,ville,nomFROM pageProGratuite 
    WHERE 
    pays=4
    AND fermer=0
    ORDER BY codePostal

    si la requete ne te sors que des tuples sur le pays 4 alors il faudra que tu mettes entre parenthèses la partie ou il y a les "OR"

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Bon c'est résolu, merci à vous tous

    C'ets vrai que c'était simple

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

Discussions similaires

  1. [SQL Agent] Requête effectuée tous les jours à minuit
    Par pitipilot dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 22/07/2011, 14h04
  2. Réponses: 1
    Dernier message: 17/07/2007, 15h45
  3. [Requête/SQL]Ajouter un enregistrement à tous les membres
    Par fernandino dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/04/2007, 17h45
  4. [Optimisation] Operation sur tous les tuples
    Par agougeon dans le forum Sybase
    Réponses: 3
    Dernier message: 31/07/2006, 12h50
  5. Réponses: 3
    Dernier message: 28/10/2005, 14h03

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