Filtre requete par date
Posté : 07 sept. 2016, 20:56
Salut à tous.
Je me bat depuis un moment avec mes requetes afin de filtrer par date ( aujourd'hui, demain, ce week-end )
J'ai donc procéder ainsi pour mes requetes:
Apparament problème de concaténation ds les switch pour filtre par date enfin je ne sais pas trop ...
Comment faire pour résondre mon problème de concaténation svp.
Merci à vous
Je me bat depuis un moment avec mes requetes afin de filtrer par date ( aujourd'hui, demain, ce week-end )
J'ai donc procéder ainsi pour mes requetes:
Apparament problème de concaténation ds les switch pour filtre par date enfin je ne sais pas trop ...
$sql = "SELECT * FROM `loisirs` JOIN `regions` ON `regions`.`region_id` = `loisirs`.`id_region` WHERE `loisirs`.`date_fin_sortie` > NOW() AND `loisirs`.`valide` = 1";
$sql .= !empty($_REQUEST['region']) ? ' AND `regions`.`url` = "'.$_REQUEST['region'].'"' : NULL;
$sql .= !empty($_REQUEST['departement']) ? ' AND `loisirs`.`id_departements` = '.$_REQUEST['departement'] : NULL;
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`genre_loisir` = "'.$_REQUEST['loisir'].'"' : NULL;
if(!empty($_REQUEST['ville'])) {
$sql .= ' AND loisirs.city = \''. getRealValue($_REQUEST['ville']). '\'';
}
// Filtre par date
switch ($typeDate) :
default:
case "aujourdhui" :
$sql . = "AND date_debut_sortie = '".date('Y-m-d h:i:s',strtotime('today'))."'";
break;
case "demain":
$sql .= "AND date_debut_sortie = '".date('Y-m-d h:i:s',strtotime('tomorrow'))."'";
break;
case "we" :
$sql .= "AND date_debut_sortie BETWEEN '".date('Y-m-d h:i:s',strtotime('next Saturday'))."' AND ".date('Y-m-d h:i:s',strtotime('next Monday'))."'"; //démarre à minuit
break;
endswitch;
$req = $bdd->query($sql);
et mon code pour mes boutons, filtre en lui même:
<form method="post"
Aujourd'hui <input type="radio" name="date" value="aujourdhui" ><br>
Demain <input type="radio" name="date" value="demain" ><br>
Ce week-end <input type="radio" name="date" value="we" >
<input type="submit" value"=Envoyer" >
</form>
<?php
$typeDate = $_POST["date"];
// Si aucune filtre de selectionner alors on affiche tout
$typeDate = (in_array($typeDate, array("aujourdhui", "demain", "we")) ? $typeDate : NULL );
// on affiche la date selectionner
echo $typeDate;
?>
Je pense pas être trop loin mais je bloque la.Comment faire pour résondre mon problème de concaténation svp.
Merci à vous