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 automatiser une requête SQL alimentée par un formulaire HTML?


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 30
    Points
    30
    Par défaut [SQL] Comment automatiser une requête SQL alimentée par un formulaire HTML?
    Bonjour,

    voila j'ai une requête avec un simple SELECT sur plusieurs tables, donc avec des jointures, et jusque là tout fonctionne bien.

    Maintenant je souhaite compléter ma requête avec des filtres WHERE et AND,
    mais le problème est que je dois adapter ma requête en fonction des résultats récupérés d'un formulaire HTML.
    Il s'agit d'un formulaire de recherche qui permet ou non de sélectionner/cocher divers critères de recherche.

    Par exemple, si l'utilisateur choisit de connaitre le nom de toutes mes pizzas qui ont par exemple et du boeuf et des champignons et du fromage mais pas de chorizo et d'ail, au moment ou le formulaire est transmis je n'ai aucun moyen d'adapter ma requête de façon automatique pour qu'il y ai juste ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    WHERE ing_spices='strong'
    AND ing_dough='classic'
    AND ing_cheese='cheddar'";
    ...
    sachant que chaque utilisateur sélectionnera des critères différents et peut surtout deplus laisser quelquonque choix du formulaire sur 'indifférent'.

    J'ai bien sur essayé d'insérer du code php pour emmettre une condition entre les WHERE et les AND mais j'obtient un parse error. Je pense que php ne permet pas vraiment cela....

    Y'a t'il un moyen de s'y prendre autrement?

    En espérant que c'était bien expliqué

    Merci d'avance pour vos réponses,
    rc

  2. #2
    Membre habitué Avatar de Bobybx
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2005
    Messages : 122
    Points : 125
    Points
    125
    Par défaut
    Il est tout à fait possible d'effectuer une telle requete.
    Voilà comment je verrai la chose pour tojn hsitoire d'ingrédients:

    Des listes déroulantes (select)qui s'ils sont différents de "indifférent" par exemple sont mis dans un "and blabla"

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <label>fromage : </label>
    <select name=fromage>
    <option value="">Indifférent</option>
    <option value="cheddar">cheddar</option>
    <option value="bleu">cheddar</option>
    <option value="roquefort">roquefort</option>
    </select>
     
    <label>viande : </label>
    <select name=viande>
    <option value="">Indifférent</option>
    <option value="boeuf">boeuf</option>
    <option value="porc">porc</option>
    </select>
    et en traitement du formulaire tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    if($_POST['fromage'] != "")
       cond_fromage = " and fromage = ".$_POST['fromage'];
    else
       cond_fromage = "";
    if($_POST['viande'] != "")
       cond_viande = " and viande = ".$_POST['viande '];
    else
       cond_viande = "";
     
    $requete = "select pizza from tab where sauce='tomate'";
    $requete .= $cond_fromage;
    $requete .= $cond_viande;
    Un truc dans ce style

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    Bonsoir Bobybx,

    en fait, tu avais raison, et c'était pas plus compliqué que cela.
    Tout fonctionne très bien maintenant

    Bon et bien merci pour ton aide rapide et efficace,
    rc

  4. #4
    Membre habitué Avatar de Bobybx
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2005
    Messages : 122
    Points : 125
    Points
    125
    Par défaut
    de rien

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

Discussions similaires

  1. Comment parametrer une requête SQL alimentant un Report sous VB6
    Par juldace dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/07/2008, 15h36
  2. [SQL] Comment construire une requête filtrant les données ?
    Par glasgow dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2008, 15h57
  3. Réponses: 6
    Dernier message: 15/02/2007, 14h46
  4. Comment faire une requête SQL dans un datatable
    Par Passepoil dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/02/2007, 21h24
  5. Comment stocker une requête sql dans une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2006, 11h01

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