no save
Assistance
Achat
News

Forum | webmastering
[SQL & PHP ] Mélange dans une requête
JohnMystic, le jeu. 28 mai 2009 à 11:21:06
Bonjour,

J'ai un petit problème avec une requête et je ne sais pas trop comment le résoudre. En même temps je ne sais pas si ce que j'ai fais est possible.

Alors voici le contexte:

Un client recherche une carte en fonction de 4 critères. Une fois choisis ( ou pas ce n'est pas une obligation ) il clique sur 'soumettre'. La page envoie les informations sur une autre page en méthode GET.
Sur l'autre page je récupère les informations et ensuite je fais ma requête. Et c'est là que ça ce complique.

Donc d'abords je récupère les infos:

// On récupère l'indice de la langue si elle a été sélectionnée
if(isset ($_GET['lang'])) $langue=$_GET['lang'];
else $langue=0;

// On récupère l'indice du format s' il a été sélectionné
if(isset ($_GET['auto']) && $_GET['auto']!=-1 ) $format=$_GET['auto'];
else $format=0;

// On récupère l'indice de l'édition si elle a été sélectionnée
if(isset ($_GET['ext']) && $_GET['ext']!=-1 ) $edition=$_GET['ext'];
else $edition=0;

// On récupère l'indice de la couleur si elle a été sélectionnée
if(isset ($_GET['col'])) $couleur=$_GET['col'];
else $couleur=0;


Voici la tête de ma requête:

$requetefoil='
SELECT j.id_carte,j.titre_en,j.titre_fr,b.id_couleur,d.lib_extension,g.lib_lang,i.lib_etat,a.prix_vente,a.rabais

FROM t_produit a, t_couleur b, t_id_carte_id_couleur c, t_extension d, t_id_variation_id_declinaison_id_produit e, t_id_carte_extension_rarete_num_carte_chemin f,
t_lang g, t_declinaison h, t_etat i,t_carte j,t_id_carte_id_autorisation k

WHERE f.id_carte=j.id_carte
AND f.id_extension=d.id_extension
AND f.id_variation=e.id_variation
AND c.id_carte=f.id_carte
AND c.id_couleur=b.id_couleur
AND e.id_produit=a.id_produit
AND e.id_declinaison=h.id_declinaison
AND h.id_etat=i.id_etat
AND h.id_langue=g.id_lang
AND k.id_carte=f.id_carte
'if($langue!=0) {'
AND g.id_lang='.$langue.'
'}'
'if($edition!=0) {'
AND d.id_extension='.$edition.'
'}'
'if($format!=0) {'
AND k.id_autorisation='.$format.'
'}'
'if($couleur!=0) {'
AND c.id_couleur='.$couleur.'
'}'
AND a.prix_vente>0
AND h.foil=\'O\'
AND (a.quantite>0 OR a.VIRTUEL=\'O\')';


Comme vous l'aurez remarqué, il y a des trucs pas très net en plein milieu de la requête ( en gras ). En faite ce que je veux faire c'est en fonction du résultat d'une variable, rajouter une ligne dans la requête SQL. Bien sûr ce que j'ai fais là ne fonctionne pas. Et c'est pour ça que je suis là.

Si quelqu'un d'entre vous a une idée ou une autre solution je suis preneur =)
Merci d'avance à tous.

ENJOY =)Configuration: Windows Vista
Firefox 3.0.10


Ozimandias
28 mai
Suivant
REPONSES
Ozimandias
28 mai
JohnMystic
29 mai
Version Web
Réalisé par RedShift
no save