Query à critère multiples optionnels

Résolu
dieusurterre Messages postés 13 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005 - 31 oct. 2005 à 22:19
dieusurterre Messages postés 13 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005 - 31 oct. 2005 à 22:53
Bonjour,



Je désire faire une requete à ma base de données sur plusieurs critères
qui PEUVENT être remplis mais qui ne sont pas obligatoires



Exemple:

//Valeurs envoyées par le formulaire de recherches

if(isset($_POST['CP']))



{



$CP=$_POST['CP'];



}



else



{



$CP='';



}

if(isset($_POST['Pays']))



{



$Pays=$_POST['Pays'];



}



else



{



$Pays='';

//Valeurs des checkbox...les langues choisies..

if(isset($_POST['FR']))



{



$FR=$_POST['FR'];



}



else



{



FR='';



}





if(isset($_POST['EN']))



{



$EN=$_POST['EN'];



}



else



{



$EN='';



}



//la requète...



$query_CP = mysql_query (

" SELECT ID, Nom_Prenom, Societe

FROM $table

//(et partir d'ici je sèche....)

" )



Le problème vient du fait que les valeurs ne sont pas tout le temps présentes... genre ce formulaire de recherche... autoscoot24

2 réponses

dieusurterre Messages postés 13 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005
31 oct. 2005 à 22:53
bah j'ai trouvé UNE solution.... je sais pas si elle est bien ou pas mais ça marche...



if($FR=='on')

{

$FR_query='AND FR = 1';

}

else

{

$FR_query=' ';

}



if($EN=='on')

{

$EN_query='AND EN = 1';

}

else

{

$EN_query=' ';

}



$query_CP = mysql_query (

" SELECT ID, Nom_Prenom, Societe

FROM $table

WHERE

CP LIKE '%$CP%'

AND Pays LIKE '%$Pays%'

". $FR_query ."

". $EN_query ."

");
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
31 oct. 2005 à 22:53
Tu fais un truc du genre



$where = '' ;

$where.= ($CP) ? 'CP=\''.$CP.'\'' : '';


$and = ($where !== '') ? ' AND ' : '';


$where.= ($Pays) ? $and.'Pays=\''.$Pays.'\'' : '';



$and = ($where !== '') ? ' AND ' : '';


$where.= ($FR) ? $and.'Langue=\'fr\'' : '';



$and = ($where !== '') ? ' AND ' : '';


$where.= ($EN) ? $and.'Langue=\'en\'' : '';





$query = 'SELECT ID,Nom_Prenom,Societe FROM '.$table.' WHERE '.$where ;



C'est un gros bordel hein :p
Rejoignez-nous