Construction de la condition pour une recherche multicritères
Bonsoir,
Voilà, pas de soucis avec les champs simples mais comment faire le WHERE quand , depuis un SELECT, je veux faire ma recherche soit sur un item de la liste (çà j'arrive) soit sur TOUS les items de la liste ?
J'ai pensé à "AND statut IN (Active, Autre, Compromis,etc.)" mais si je rajoute un statut ultérieurement il faudra que je reprenne toutes les requêtes.
Une idée ? une solution ?
Code:
1 2 3 4 5 6
|
...
if(isset($_POST['statut']) && !empty($_POST['statut'])) {
if((isset($_POST['statut'])) = 'Tous') { // Si tous les statuts : AND statut IN (Active, Autre, Compromis,etc.) ?
$where.=.'AND ';
} |
Merci de votre aide.
Ok pour la requete, mais mon SQL plante ...
bonjour,
Voici le code PHP qui fonctionne. Par contre j'ai modifié ma requete SQL et j'ai une erreur ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
// Creation de la requete
$sql="SELECT prospects.nomprospects, prospects.refprospects, prospects.telprospects, prospects.gsmprospects, finance.statut * FROM prospects INNER JOIN finance ON prospects.idprospects = finance.idprospects WHERE ";
if(isset($_GET['nom']) && !empty($_GET['nom'])) {
$where.='nomprospects'.' LIKE \'%'.$_GET['nom'].'%\'' .'AND ';
}
if(isset($_GET['ref']) && !empty($_GET['ref'])) {
$where.='refprospects=\''.$_GET['ref'].'\''.'AND ';
}
if(isset($_GET['tel']) && !empty($_GET['tel'])) {
$where.='telprospects'.' LIKE \'%'.$_GET['tel'].'%\'' .' OR '.'gsmprospects'.' LIKE \'%'.$_GET['tel'].'%\' '.'AND ';
}
if(isset($_GET['statut']) && !empty($_GET['statut'])) {
if ($_GET['statut'] != 'Tous') {
$where.='finance.statut=\''.$_GET['statut'].'\' '.'AND ';
}
else {
if(isset($_GET['origine']) && !empty($_GET['origine'])) {
if ($_GET['origine'] !='Tous') {
$where.='prospects.origine_origine=\''.$_GET['origine'].'\' '.'OR '.' '.'finance.origine=\''.$_GET['origine'].'\' '.'AND ';
}
else {
if(isset($_GET['typefi']) && !empty($_GET['typefi'])) {
if ($_GET['typefi'] != 'Tous') {
$where.='finance.fitype=\''.$_GET['typefi'].'\' '.'AND ';
}
}
}
}
}
}
if(isset($_GET['tri']) && !empty($_GET['tri'])) {
$tri = $_GET['tri'];
}
// ***Finalisation de la recherche par les donnees entreprise***
$where = substr($where,0,strlen($where)-5);
$sql =$sql. $where.(" ORDER BY ").$tri.(" ASC"); |