Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2006, 21h09   #1
Membre à l'essai
 
Inscription : février 2006
Messages : 30
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 30
Points : 21
Points : 21
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 :
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
tse_tilky_moje_imja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 21h32   #2
Membre régulier
 
Avatar de Bobybx
 
Inscription : avril 2005
Messages : 121
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2005
Messages : 121
Points : 91
Points : 91
Envoyer un message via MSN à Bobybx
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 :
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 :
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
Bobybx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 22h00   #3
Membre à l'essai
 
Inscription : février 2006
Messages : 30
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 30
Points : 21
Points : 21
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
tse_tilky_moje_imja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 23h46   #4
Membre régulier
 
Avatar de Bobybx
 
Inscription : avril 2005
Messages : 121
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2005
Messages : 121
Points : 91
Points : 91
Envoyer un message via MSN à Bobybx
de rien
Bobybx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h13.


 
 
 
 
Partenaires

Hébergement Web