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 :

SELECT * FROM xx WHERE yy AND zz AND tt AND


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Points : 43
    Points
    43
    Par défaut SELECT * FROM xx WHERE yy AND zz AND tt AND
    Bonjour
    Soit un formulaire avec un bouton submit
    Soit 3 listes déroulantes ... avec la PREMIERE ligne VIERGE pour chacune des 3 listes. (les données des 3 listes sont issues d'une Base de données)

    Selon la sélection des 3 listes ... j'interroge la BDD et j'affiche la sélection correspondante.

    je precise que dans la BDD ... un enregistrement ne peut avoir un champ vide !

    Si je laisse une liste sur la première ligne vierge ... c'est ignorer ce critère là.

    ma requete sql ... comporte donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete =" SELECT * FROM ma_table WHERE liste1= 'ligneX' AND liste2='ligneY' AND liste3='ligneZ' ";
    Or le pb est que si je n'ai rien choisit dans une ou plusieurs des 3 listes ... la requete foire car je me trouve avec des "AND" en trop, ou une requete demandant liste2=' ' ...
    AUTREMENT DIT comment faire en sorte que la requete IGNORE une condition si la ligne d'une des listes est laissée sur vierge ?

    Suis-je clair ??
    je ne désire pas IMBRIQUER des IF dans des IF car si demain je rajoute d'autre liste ... je ne m'en sortirai pas

  2. #2
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    T'as essayé les OR ? car tes occurrences ne pourront jamais être vraies en même temps. Un ET en français ne se traduit pas forcément par un AND en SQL.

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $requete ="SELECT * FROM ma_table WHERE";
    if ($ligneX) {
      $requete.=" liste1= '".$ligneX."' AND";
    }
    if ($ligneY) {
      $requete.=" liste1= '".$ligneY."' AND";
    }
    if ($ligneZ) {
      $requete.=" liste1= '".$ligneZ."' AND";
    }
    $requete= ereg_replace(' AND$', ';', $requete); // remplace le dernier AND par ;
    A+JYT

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    merci sekaijin
    ca colle

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

Discussions similaires

  1. select * from compta where sum = variable
    Par vience dans le forum SQL
    Réponses: 6
    Dernier message: 23/05/2012, 20h19
  2. select from table where in
    Par lcaya dans le forum SQL
    Réponses: 5
    Dernier message: 10/03/2010, 17h50
  3. Special query SELECT * FROM CASE WHERE ORDER
    Par WildGroup dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/06/2009, 21h17
  4. REQUETE SQL : SELECT * FROM annonce WHERE ..
    Par gregmarty dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/01/2008, 21h52
  5. Select from table where
    Par kabalonda dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/07/2007, 17h43

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