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 :

Problème de clause WHERE [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Problème de clause WHERE
    Bonjour,

    Ma requète suivante ne fonctionne pas (elle génère beaucoup trop d'enregistrements : 261 ...), alors que si je scinde la clause WHERE en 2, les 2 requêtes fonctionnent correctement.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT * FROM r_evenements , r_evecat
    WHERE
    (UNIX_TIMESTAMP(DATE_LEDU) BETWEEN 1180303200 AND 1182981600)
    OR
    (UNIX_TIMESTAMP(DATE_AU) BETWEEN 1180303200 AND 1182981600)
    AND
    (
    (r_evenements.ID = r_evecat.IDEVENEMENT)
    AND
    (( r_evecat.IDCATEGORIE = 4 ) OR ( r_evecat.IDCATEGORIE = 5 ))
    )
    ORDER BY DATE_LEDU

    Fonctionne correctement : (5 records)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT * FROM r_evenements 
    WHERE
    (UNIX_TIMESTAMP(DATE_LEDU) BETWEEN 1180303200 AND 1182981600)
    OR
    (UNIX_TIMESTAMP(DATE_AU) BETWEEN 1180303200 AND 1182981600)
    ORDER BY DATE_LEDU

    et (19 records)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM r_evenements , r_evecat
    WHERE
     
    (r_evenements.ID = r_evecat.IDEVENEMENT)
    AND
    (( r_evecat.IDCATEGORIE = 4 ) OR ( r_evecat.IDCATEGORIE = 5 ))
     
    ORDER BY DATE_LEDU

    Où est mon erreur ? Comment assembler dans une query ces deux requêtes ?

    Merci !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    il faut peut être ajouter des parenthèses, essaies ceci:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT * FROM r_evenements , r_evecat
    WHERE
    ((UNIX_TIMESTAMP(DATE_LEDU) BETWEEN 1180303200 AND 1182981600)
    OR
    (UNIX_TIMESTAMP(DATE_AU) BETWEEN 1180303200 AND 1182981600))
    AND
    (
    (r_evenements.ID = r_evecat.IDEVENEMENT)
    AND
    (( r_evecat.IDCATEGORIE = 4 ) OR ( r_evecat.IDCATEGORIE = 5 ))
    )
    ORDER BY DATE_LEDU

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci,
    ça a l'ai de fonctionner !

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

Discussions similaires

  1. [XL-2003] problème ADO: Clause Where sur Open recordset
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/08/2010, 13h28
  2. Problème dans clause WHERE
    Par tribaleur dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/03/2008, 07h39
  3. problème doublons clause WHERE
    Par bastoonet dans le forum Designer
    Réponses: 16
    Dernier message: 20/10/2006, 15h41
  4. [requete] Mysql problème de clause where
    Par Raideman dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/07/2005, 18h00
  5. Problème clause WHERE
    Par nesbla dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07

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