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] Comment ne pas exécuter une clause WHERE si une var est nulle


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 20
    Points
    20
    Par défaut [SQL] Comment ne pas exécuter une clause WHERE si une var est nulle
    Hello,

    J'ai un formulaire de recherche multi-critères, tous les critères ne sont pas obligatoires.

    J'ai donc un select du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $var1 = $_POST['nom'];
    $var1 = $_POST['couleur'];
    SELECT * FROM base WHERE id='$var1' AND nom='$var2'
    Comment faire pour executer cette requete si $var2 est nulle dans ma page ?

    Suis-je obligé de tester chaque variable (si j'en ai une 20zaine ça va être long...) avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($var1!=""){
    $sqlwhere = $sqlwhere . " and type = '".$type."'"; 
    }
    SELECT * FROM base WHERE 1 " . $sqlwhere
    N'y aurait-il pas un raccourci mysql pour skiper une clause WHERE si une variable est vide ?

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    salut,

    et bien tu n'as qu'à simplement construire ta requete à l'aide de if...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $query = "SELECT * FROM latable WHERE 1=1";
     
    if (isset($_POST['var']) && $_POST['var'] != "") {
      $query.= " AND var = '" . $_POST['var'] . "'";
    }
    etc...
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Points : 283
    Points
    283
    Par défaut
    Tu peux simplement faire un if et deux requêtes différentes selon $var2.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    Ok, donc ya pas plus court.

    Merci pour votre aide ;=)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 59
    Points : 71
    Points
    71
    Par défaut Ca va être difficile
    Hello,

    et non y a pas plus court

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2014, 16h32
  2. Utiliser un alias de colonne dans une clause Where MS SQL
    Par sir dragorn dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/10/2011, 09h31
  3. Réponses: 1
    Dernier message: 03/02/2006, 12h35
  4. Réponses: 3
    Dernier message: 11/12/2005, 11h15
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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