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] Génération de requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut [SQL] Génération de requête
    Bonjour,

    Voici mon problème, j'ai un formulaire de recherche comportant 15 champs. L'utilisateur, peut sélectionner un nombre aléatoire de champs. Or vu le nombre de requete possible, je souhaiterais effectuer une seuls requete et non une combinaison de requete alors s'il existe des champs vide, comment faire pour les ignorer, et générer ma requete. Merci de votre aide.

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Tu peux tester si le champ a été saisi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if((!isset($tonchamp))&&(!empty($ton_champ))
    Ensuite si c'est saisi, tu rajouter une condition adéquate dans la clause where de ta requete SQL.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    Ok pour le test, mais je nai besoin dans mon cas que de !empty pour contrôler si il sont à 0 ou non :
    if (!empty($ch1)||($ch2)||($ch3))

    Mais le problème c'est comment générer ma requete, vue le nombre de possibilité (15 puissance 15), je ne vois pas comment faire, pour mettre dans ma requete la condition WHERE avec uniquement les champs qui ne son pas 0.

    exemple si $ch2=0 je veux générer une requete du type :

    SELECT * FROM matable WHERE (ch1=$cha1 OR ch3=$cha3 ) AND (ch1=$cha1 AND ch3=$cha3)

    ou si $ch1=0

    SELECT * FROM matable WHERE (ch2=$cha2 OR ch3=$cha3 ) AND (ch2=$cha2 AND ch3=$cha3)

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    je sais pas si c'est une erreur dans ton exemple mais
    (ch2=$cha2 OR ch3=$cha3 ) AND (ch2=$cha2 AND ch3=$cha3)
    c'est la meme chose que
    (ch2=$cha2 AND ch3=$cha3)

    Le premier OR ne sert a rien puisque tout le résultat dépend du deuxieme AND

  5. #5
    Membre Expert

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Bien, j'ai du mal m'exprimer, tu peux tres bein faire le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $requete="SELECT * FROM matable WHERE 1=1  ";
    if (!empty($ch1)){
    $requete.=" AND ch1='".$ch1."'";
    }
    if (!empty($ch2)){
    $requete.=" AND ch2='".$ch2."'";
    }
    etc...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    Effectivement le AND est une erreur, c'est un OR
    Désolé.

    Merci Raideman pour les précisions je vais tester dès que possible et je vous tiens informé de la suite.

    Merci à vous 2 de vous intéressez à mon problème.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2017, 22h38
  2. Réponses: 3
    Dernier message: 22/04/2009, 15h33
  3. [SQL] Interface de génération de requêtes SQL
    Par kaboume dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2007, 13h14
  4. [SQL Server 2005] Problème de génération de requêtes.
    Par just1980 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2006, 18h44
  5. [PL/SQL] Parseur de requête
    Par SheikYerbouti dans le forum SQL
    Réponses: 19
    Dernier message: 20/04/2004, 16h04

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