Formulaire et conditions php

Fermé
cooook - 18 mai 2009 à 12:59
 cooook - 18 mai 2009 à 15:07
Bonjour,

je suis en train de créer un formulaire de recherche avancée. Il y a 2 listes déroulantes: je voudrais qu'il soit possible de choisir dans une des deux listes ou dans les deux listes. Le problème, c'est qu'avec le code que j'ai écrit ci dessous, il faut que les 2 champs soient validés pour qu'il y ait un résultat. Si je choisis dans une seule des deux listes, il n'y a pas de résultats.
ex:
$requete = SELECT * FROM mestables
WHERE table1.id1 = liaison.id1
AND table2.id2 = liaison.id2
AND table3.id3 = liaison2.id3
AND table4.id4 = liaison2.id4

if ($_POST ['var1'])
{$requete.="AND liaison.id1 = '$var1'";}
if ($_POST ['var2'])
{$requete.="AND liaison2.id3 = '$var2'";}

J'ai essayé avec des OR mais mon ordi plante! (je crois que ça donne trop de résultats, et même en sql sur phpmyadmin, l'ordi plante).

Merci d'avance!

4 réponses

hdi93 Messages postés 63 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 30 mai 2009 24
18 mai 2009 à 13:06
essaie de changer tes lignes de codes enfin les revoir il y a PEUT ETRE une erreur
0
mais le problème ne vient-il pas des conditions? Comment faire pour qu'une condition soit facultative? Désolée, ça doit paraitre bateau, mais je ne trouve pas de réponses adaptées à mon cas!
0
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
18 mai 2009 à 14:35
Salut,

il y a peut etre un facon plus simple mais au pire tu peut faire
if ($_POST ['var1']) && ($_POST ['var2'])
{$requete.="AND (liaison.id1 = '$var1'" or liaison2.id3 = '$var2';
}else{
if ($_POST ['var1'])
{$requete.="AND liaison.id1 = '$var1'";}
if ($_POST ['var2'])
{$requete.="AND liaison2.id3 = '$var2'";}
}
0
Merci pour ta réponse, c'est déjà plus cohérent; mais ça ne marche pas...Je crois que ça bloque au niveau du else. J'ai essayé en rajoutant des !empty...Toujours rien! en fait, seule la première condition est prise en compte.
0