une aide pour formulaire de recherche entre deux dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : une aide pour formulaire de recherche entre deux dates

par coxine » 29 nov. 2008, 14:12

Merci !!!
j'ai bien étudié vos réponse et j'y suis arrivée
thanks ;-)

par dogmongo » 22 oct. 2008, 00:34

le conseil que je peu te donner c'est de préparer une fonction pour clarifier ton code, ensuite dans cette fonction prévoi une variable valeur par default qui te servira de selected.

si tu te debrouille bien ta fonction s'adaptera à tout tes champs grace à une boucle prédéfinie sur jour mois et année

petit exemple
mafonction($tableau_predefinie_jours,"nom_de_mon_champ_formulaire",date("d"));
tu remarquera que j'ai placer
date("d")

dans l'appel de ma fonction pour lui indiquer le jour par default , ensuite tu adapte
mafonction($tableau_predefinie_jours,"nom_de_mon_champ_formulaire",date("d"));
mafonction($tableau_predefinie_mois,"nom_de_mon_champ_formulaire",date("m"));
mafonction($tableau_predefinie_annee,"nom_de_mon_champ_formulaire",date("Y"));
bon courage

par sadeq » 22 oct. 2008, 00:04

Oui, normalement les données : startYear, startMonth, startDay, endYear, endMonth et endDay, ne sont transmises que si les checkbox "du" et "au" sont cochées. Il faut donc tester sur ses checkbox avant d'appliquer le code que je t'ai donné.

Exemple, si la méthode du form est GET:
//Initialisation des variables locales
$startDate = null;
$endDate = null;

//Date de début
if (isset($_GET['du']) && $_GET['startYear']  && $_GET['startMonth']  && $_GET['startDay']) {
   $startDate = $_GET['startYear'] . "/" . $_GET['startMonth'] . "/" . $_GET['startDay']; 
}

//Date de fin
if (isset($_GET['au']) && $_GET['endYear']  && $_GET['endMonth']  && $_GET['endDay']) {
   $endDate = $_GET['endYear'] . "/" . $_GET['endMonth'] . "/" . $_GET['endDay']; 
}

//Elaborer la condition de la requête selon start et/ou end
if ($startDate !=null && $endDate != null){
   $condition = " date Between '$startDate' AND '$endDate' " ;
}
else if ($startDate !=null){
    $condition = " date >= '$startDate' " ;
}
else if ($endDate !=null) {
    $condition = " date <= '$endDate' " ;
}
else {
    $condition = " 1 "; //pour rendre neutre la condition dans le Where
}
//Requête SQL finale
$sql = "SELECT ..... WHERE "  . $condition;

par Invité » 21 oct. 2008, 20:13

hello sadeq et merci de ta rapide réponse !
je vais tester cela demain

Tu as une idée du cas où je coche ou non la case (date début) et date de fin ?
cela amène une autre condition, non ?

par sadeq » 21 oct. 2008, 18:25

Tu peux utiliser la concaténation pour reconstruire tes dates.
Par exemple:
$startDate = $startYear . "/" . $startMonth . "/" . $startDay; 
$endDate = $endYear . "/" . $endMonth . "/" . $endDay; 

$sql = "SELECT ..... WHERE date Between '$startDate' AND '$endDate' ";
Ou bien par l'écriture suivante (même chose d'ailleurs) :
$startDate = sprintf("%s/%s/%s", $startYear, $startMonth, $startDay); 
$endDate  =  sprintf("%s/%s/%s", $endYear, $endMonth, $endDay); 

$sql = "SELECT ..... WHERE date Between '$startDate' AND '$endDate' ";

une aide pour formulaire de recherche entre deux dates

par coxine » 21 oct. 2008, 17:25

Hello à tous et merci d'avance pour vos avis éclairés ;-)
J'ai créé un formulaire de recherche tout bete avec 3 critères.
Cela fonctionne bien.
Cela se corse car je dois ajouter (en option) un critère "date"

Cela se présente de cette façon :
Du $startDay $startMonth $startYear au $endDay $endMonth $endYear
Donc on a : une date "décomposée" (jour - mois - année) alors que dans ma base de données les valeurs sont les suivantes :
$date_debut qui a la forme : date() et $date_fin qui a la forme date().

Ce sont des listes déroulantes dynamiques qui prennent par défaut la date du jour avec les variables
if(!isset($_GET['mois'])) $mois = date('n'); else $mois = $_GET['mois'];
if (!isset($_GET['jour1'])) $jour1= date('d'); else $jour1 = $_GET['jour1'];
if (!isset($_GET['annee'])) $annee= date('Y'); else $annee = $_GET['annee'];

Code : Tout sélectionner

<input name="du" type="checkbox" id="du" onclick="activeDate(this)" value="1" checked="checked"/> <b>A partir du</b> <select name="startDay" size="1" id="startDay"> <option value="01" <?php if (!(strcmp(01, "$jour1"))) {echo "selected=\"selected\"";} ?>>01</option> <option value="02" <?php if (!(strcmp(02, "$jour1"))) {echo "selected=\"selected\"";} ?>>02</option> <option value="03" <?php if (!(strcmp(03, "$jour1"))) {echo "selected=\"selected\"";} ?>>03</option> <option value="04" <?php if (!(strcmp(04, "$jour1"))) {echo "selected=\"selected\"";} ?>>04</option> <option value="05" <?php if (!(strcmp(05, "$jour1"))) {echo "selected=\"selected\"";} ?>>05</option> <option value="06" <?php if (!(strcmp(06, "$jour1"))) {echo "selected=\"selected\"";} ?>>06</option> <option value="07" <?php if (!(strcmp(07, "$jour1"))) {echo "selected=\"selected\"";} ?>>07</option> <option value="08" <?php if (!(strcmp(08, "$jour1"))) {echo "selected=\"selected\"";} ?>>08</option> <option value="09" <?php if (!(strcmp(09, "$jour1"))) {echo "selected=\"selected\"";} ?>>09</option> <option value="10" <?php if (!(strcmp(10, "$jour1"))) {echo "selected=\"selected\"";} ?>>10</option> <option value="11" <?php if (!(strcmp(11, "$jour1"))) {echo "selected=\"selected\"";} ?>>11</option> <option value="12" <?php if (!(strcmp(12, "$jour1"))) {echo "selected=\"selected\"";} ?>>12</option> <option value="13" <?php if (!(strcmp(13, "$jour1"))) {echo "selected=\"selected\"";} ?>>13</option> <option value="14" <?php if (!(strcmp(14, "$jour1"))) {echo "selected=\"selected\"";} ?>>14</option> <option value="15" <?php if (!(strcmp(15, "$jour1"))) {echo "selected=\"selected\"";} ?>>15</option> <option value="16" <?php if (!(strcmp(16, "$jour1"))) {echo "selected=\"selected\"";} ?>>16</option> <option value="17" <?php if (!(strcmp(17, "$jour1"))) {echo "selected=\"selected\"";} ?>>17</option> <option value="18" <?php if (!(strcmp(18, "$jour1"))) {echo "selected=\"selected\"";} ?>>18</option> <option value="19" <?php if (!(strcmp(19, "$jour1"))) {echo "selected=\"selected\"";} ?>>19</option> <option value="20" <?php if (!(strcmp(20, "$jour1"))) {echo "selected=\"selected\"";} ?>>20</option> <option value="21" <?php if (!(strcmp(21, "$jour1"))) {echo "selected=\"selected\"";} ?>>21</option> <option value="22" <?php if (!(strcmp(22, "$jour1"))) {echo "selected=\"selected\"";} ?>>22</option> <option value="23" <?php if (!(strcmp(23, "$jour1"))) {echo "selected=\"selected\"";} ?>>23</option> <option value="24" <?php if (!(strcmp(24, "$jour1"))) {echo "selected=\"selected\"";} ?>>24</option> <option value="25" <?php if (!(strcmp(25, "$jour1"))) {echo "selected=\"selected\"";} ?>>25</option> <option value="26" <?php if (!(strcmp(26, "$jour1"))) {echo "selected=\"selected\"";} ?>>26</option> <option value="27" <?php if (!(strcmp(27, "$jour1"))) {echo "selected=\"selected\"";} ?>>27</option> <option value="28" <?php if (!(strcmp(28, "$jour1"))) {echo "selected=\"selected\"";} ?>>28</option> <option value="29" <?php if (!(strcmp(29, "$jour1"))) {echo "selected=\"selected\"";} ?>>29</option> <option value="30" <?php if (!(strcmp(30, "$jour1"))) {echo "selected=\"selected\"";} ?>>30</option> <option value="31" <?php if (!(strcmp(31, "$jour1"))) {echo "selected=\"selected\"";} ?>>31</option> </select> <select name="startMonth" size="1" id="startMonth"> <option value="01" <?php if (!(strcmp(01, "$mois"))) {echo "selected=\"selected\"";} ?>>01</option> <option value="02" <?php if (!(strcmp(02, "$mois"))) {echo "selected=\"selected\"";} ?>>02</option> <option value="03" <?php if (!(strcmp(03, "$mois"))) {echo "selected=\"selected\"";} ?>>03</option> <option value="04" <?php if (!(strcmp(04, "$mois"))) {echo "selected=\"selected\"";} ?>>04</option> <option value="05" <?php if (!(strcmp(05, "$mois"))) {echo "selected=\"selected\"";} ?>>05</option> <option value="06" <?php if (!(strcmp(06, "$mois"))) {echo "selected=\"selected\"";} ?>>06</option> <option value="07" <?php if (!(strcmp(07, "$mois"))) {echo "selected=\"selected\"";} ?>>07</option> <option value="08" <?php if (!(strcmp(08, "$mois"))) {echo "selected=\"selected\"";} ?>>08</option> <option value="09" <?php if (!(strcmp(09, "$mois"))) {echo "selected=\"selected\"";} ?>>09</option> <option value="10" <?php if (!(strcmp(10, "$mois"))) {echo "selected=\"selected\"";} ?>>10</option> <option value="11" <?php if (!(strcmp(11, "$mois"))) {echo "selected=\"selected\"";} ?>>11</option> <option value="12" <?php if (!(strcmp(12, "$mois"))) {echo "selected=\"selected\"";} ?>>12</option> </select> <select name="startYear" size="1" id="startYear"> <option value="2008" <?php if (!(strcmp(2008, "$annee"))) {echo "selected=\"selected\"";} ?>>2008</option> <option value="2009" <?php if (!(strcmp(2009, "$annee"))) {echo "selected=\"selected\"";} ?>>2009</option> <option value="2010" <?php if (!(strcmp(2010, "$annee"))) {echo "selected=\"selected\"";} ?>>2010</option> </select> <input type="checkbox" id="au" name="au" value="1" onclick="activeDate(this)" /> <b>Jusqu'au</b> <select name="endDay" size="1" disabled="disabled" id="endDay"> <option value="01" <?php if (!(strcmp(01, "$jour1"))) {echo "selected=\"selected\"";} ?>>01</option> <option value="02" <?php if (!(strcmp(02, "$jour1"))) {echo "selected=\"selected\"";} ?>>02</option> <option value="03" <?php if (!(strcmp(03, "$jour1"))) {echo "selected=\"selected\"";} ?>>03</option> <option value="04" <?php if (!(strcmp(04, "$jour1"))) {echo "selected=\"selected\"";} ?>>04</option> <option value="05" <?php if (!(strcmp(05, "$jour1"))) {echo "selected=\"selected\"";} ?>>05</option> <option value="06" <?php if (!(strcmp(06, "$jour1"))) {echo "selected=\"selected\"";} ?>>06</option> <option value="07" <?php if (!(strcmp(07, "$jour1"))) {echo "selected=\"selected\"";} ?>>07</option> <option value="08" <?php if (!(strcmp(08, "$jour1"))) {echo "selected=\"selected\"";} ?>>08</option> <option value="09" <?php if (!(strcmp(09, "$jour1"))) {echo "selected=\"selected\"";} ?>>09</option> <option value="10" <?php if (!(strcmp(10, "$jour1"))) {echo "selected=\"selected\"";} ?>>10</option> <option value="11" <?php if (!(strcmp(11, "$jour1"))) {echo "selected=\"selected\"";} ?>>11</option> <option value="12" <?php if (!(strcmp(12, "$jour1"))) {echo "selected=\"selected\"";} ?>>12</option> <option value="13" <?php if (!(strcmp(13, "$jour1"))) {echo "selected=\"selected\"";} ?>>13</option> <option value="14" <?php if (!(strcmp(14, "$jour1"))) {echo "selected=\"selected\"";} ?>>14</option> <option value="15" <?php if (!(strcmp(15, "$jour1"))) {echo "selected=\"selected\"";} ?>>15</option> <option value="16" <?php if (!(strcmp(16, "$jour1"))) {echo "selected=\"selected\"";} ?>>16</option> <option value="17" <?php if (!(strcmp(17, "$jour1"))) {echo "selected=\"selected\"";} ?>>17</option> <option value="18" <?php if (!(strcmp(18, "$jour1"))) {echo "selected=\"selected\"";} ?>>18</option> <option value="19" <?php if (!(strcmp(19, "$jour1"))) {echo "selected=\"selected\"";} ?>>19</option> <option value="20" <?php if (!(strcmp(20, "$jour1"))) {echo "selected=\"selected\"";} ?>>20</option> <option value="21" <?php if (!(strcmp(21, "$jour1"))) {echo "selected=\"selected\"";} ?>>21</option> <option value="22" <?php if (!(strcmp(22, "$jour1"))) {echo "selected=\"selected\"";} ?>>22</option> <option value="23" <?php if (!(strcmp(23, "$jour1"))) {echo "selected=\"selected\"";} ?>>23</option> <option value="24" <?php if (!(strcmp(24, "$jour1"))) {echo "selected=\"selected\"";} ?>>24</option> <option value="25" <?php if (!(strcmp(25, "$jour1"))) {echo "selected=\"selected\"";} ?>>25</option> <option value="26" <?php if (!(strcmp(26, "$jour1"))) {echo "selected=\"selected\"";} ?>>26</option> <option value="27" <?php if (!(strcmp(27, "$jour1"))) {echo "selected=\"selected\"";} ?>>27</option> <option value="28" <?php if (!(strcmp(28, "$jour1"))) {echo "selected=\"selected\"";} ?>>28</option> <option value="29" <?php if (!(strcmp(29, "$jour1"))) {echo "selected=\"selected\"";} ?>>29</option> <option value="30" <?php if (!(strcmp(30, "$jour1"))) {echo "selected=\"selected\"";} ?>>30</option> <option value="31" <?php if (!(strcmp(31, "$jour1"))) {echo "selected=\"selected\"";} ?>>31</option> </select> <select name="endMonth" size="1" disabled="disabled" id="endMonth"> <option value="01" <?php if (!(strcmp(01, "$mois"))) {echo "selected=\"selected\"";} ?>>01</option> <option value="02" <?php if (!(strcmp(02, "$mois"))) {echo "selected=\"selected\"";} ?>>02</option> <option value="03" <?php if (!(strcmp(03, "$mois"))) {echo "selected=\"selected\"";} ?>>03</option> <option value="04" <?php if (!(strcmp(04, "$mois"))) {echo "selected=\"selected\"";} ?>>04</option> <option value="05" <?php if (!(strcmp(05, "$mois"))) {echo "selected=\"selected\"";} ?>>05</option> <option value="06" <?php if (!(strcmp(06, "$mois"))) {echo "selected=\"selected\"";} ?>>06</option> <option value="07" <?php if (!(strcmp(07, "$mois"))) {echo "selected=\"selected\"";} ?>>07</option> <option value="08" <?php if (!(strcmp(08, "$mois"))) {echo "selected=\"selected\"";} ?>>08</option> <option value="09" <?php if (!(strcmp(09, "$mois"))) {echo "selected=\"selected\"";} ?>>09</option> <option value="10" <?php if (!(strcmp(10, "$mois"))) {echo "selected=\"selected\"";} ?>>10</option> <option value="11" <?php if (!(strcmp(11, "$mois"))) {echo "selected=\"selected\"";} ?>>11</option> <option value="12" <?php if (!(strcmp(12, "$mois"))) {echo "selected=\"selected\"";} ?>>12</option> </select> <select name="endYear" size="1" disabled="disabled" id="endYear"> <option value="2008" <?php if (!(strcmp(2008, "$annee"))) {echo "selected=\"selected\"";} ?>>2008</option> <option value="2009" <?php if (!(strcmp(2009, "$annee"))) {echo "selected=\"selected\"";} ?>>2009</option> <option value="2010" <?php if (!(strcmp(2010, "$annee"))) {echo "selected=\"selected\"";} ?>>2010</option> </select>
Ma question est :
Dans ce formulaire en méthode $_GET dans lequel je récupère les variables, comment transformer la condition : si "du" est checked et "au" est checked en $date_debut et $date_fin avec la requete BETWEEN ?

Merci de votre aide !!!
Coxine