Execption sql

Bonjour,
J'ai programmé mon application de gestion de prise en charge pour des réparations, seulement, il y a certaines pièces qui sont adapté à un modèle de téléphone, mais pas à la couleur.
Ma requête suivante me fournis les pièces qui répondent au modèle, à la couleur et à une quantité positive, par contre j'aimerai quel me fournisse aussi les pièces qui sont adaptable à ce modèle, ces pièces ont comme couleur "standard".

$requete_stock = "select * from stock S, piece P where P.idpiece=S.idpiece and S.idmodele='$idmodele' and S.couleur='$couleur' and S.quantite>=1;";

Pour la requête qui me permet d'afficher aussi les pièces couleur standard (exemple batterie qui est adaptable à un modèle mais la couleur n'importe pas) j'avais imaginer ça :

$requete_stock = "select * from stock S, piece P where P.idpiece=S.idpiece and S.idmodele='$idmodele' and S.couleur='$couleur' or couleur='Standard' and S.quantite>=1;";

Mais il me sort quasiement tous mon stock ça ne convient pas.

Avez vous une idée de comment je dois tourner ma requête ?
Cordialement,

2 réponses

  1. C'est pas la première fois que je suis face à ce problème et la, je comprends enfin comment y faire face, merci piur vos réponse, ca m'a grandement aidé et m'a appris une chose !
    Cordialement
    0
    1. Normal, ta requete te retourne toutes les pièces qui correspondent a ton modèle et toutes les pièces qui correspondent a la couleur $couleur.

      $requete_stock = "select * from stock S, piece P where P.idpiece=S.idpiece and S.idmodele='$idmodele' and S.couleur='$couleur' and S.quantite>=1;";

      met plutôt ça :
      $requete_stock = "SELECT * FROM stock S, piece P WHERE P.idpiece=S.idpiece AND S.idmodele='$idmodele' and S.quantite>0
      UNION
      ( SELECT * FROM stock S, piece P WHERE P.idpiece=S.idpiece AND S.couleut='$couleur' AND S.quantite>0 ) ";

      Exprime toi clairement, et ta réponse sera rapide
      1
      1. corrigé dans
        UNION
        ( SELECT * FROM stock S, piece P WHERE P.idpiece=S.idpiece AND S.couleut='$couleur' AND S.quantite>0 ) ";

        couleur ;)
        0
      2. c'est l'intention qui compte ;)
        0
      3. Oui, merci beaucoup
        0