[MySQL/PHP] Ordre de priorité AND OR

Résolu
Bonjour,

J'aimerais intérroger MySql en voulant sélectionner 3 choses :
> Le nom de l'expéditeur (who) OU le nom du destinataire (destinataire) vaut 1 par exemple.
> ET Le n° du sujet dans l'historique (history vaut dans tout LES CAS 2.

Le problème, c'est qu'avec

$sql_historique = "SELECT * FROM `pm` WHERE `destinataire`= '1' OR `who`= '1' AND 'historique' = '2' ORDER BY id ASC LIMIT 1";

Ca ne sélectionne rien du tout de ce que je veux !
Je pense m'être trompé sur la priorité, mais alors comment ?

Merci !

1 réponse

  1. Modérateur
    Salut,

    $sql_historique = "SELECT * FROM `pm` WHERE `destinataire`= '1' OR `who`= '1' AND 'historique' = '2' ORDER BY id ASC LIMIT 1";

    AND a une priorité supérieure à OR. Utilise des paranthéses.
    $sql_historique = "SELECT * FROM `pm` WHERE (`destinataire`= '1' OR `who`= '1') AND 'historique' = '2' ORDER BY id ASC LIMIT 1"; 
    21
    1. salut tout le monde , STP lami20j tu peut m'aider?
      je suis perdu . j'ai evoyé un message au forum
      (aidez moi c'est trés urgent) 
      0
    2. Modérateur
      @émaPourquoi moi?!

      Il y a beaucoup des gens sur ce site qui connaissent mieux que moi le C.
      Je suis certain que tu va t'en sortir et si tu me permets un petit conseils, ne panique jamais quelque soit la situation sinon tu ne trouveras pas si rapidement la solution à ton problème.

      Amicalement

      lami20j
      0
    3. Merci beaucoup lami20j; ça marche perfect :)
      0
    4. Nickel =D
      0
    5. 6 ans après, toujours utile ^^ Thank's a lot ;)
      0