j'essaie d'effectuer une recherche assez complexe mais quand j'ajoute la partie permettant de rechercher entre deux dates de naissance ça plante.
voici le script:
$aujourdhui = date("Y-m-d");
$annee = date("Y");
$annee2 = $annee-$_POST['rech_age_maxi'];
if ($_POST['rech_age_maxi']!='')
{
$age_maxi = ''.$annee2.'-01-01';
}
if ($_POST['rech_age_mini']!='')
{
$age_mini = date ( 'Y-m-d' , mktime ( 0,0,0, substr( $aujourdhui , 5 , 2 ) ,substr( $aujourdhui , 8 , 2 ) ,substr( $aujourdhui , 0 , 4 ) -$_POST['rech_age_mini'] ));
}
$sql = 'SELECT pseudo FROM membres';
$where = array();
if (isset($_POST['pseudo']) && !empty($_POST['pseudo'])) {
$where[] = "`pseudo`='" . mysql_escape_string($_POST['pseudo']) . "'";
}
if (isset($_POST['perse_rech']) && !empty($_POST['perse_rech'])) {
$where[] = "`sexe`='" . mysql_escape_string($_POST['perse_rech']) . "'";
}
if (isset($age_mini) && !empty($age_mini)) {
$where[] = "naissance" . mysql_escape_string(" NOW() BETWEEN ".$age_mini." AND ".$age_maxi."");
}
if (count($where) > 0){
$sql .= " WHERE " . implode(' AND ', $where);
}
$res = mysql_query($sql);
echo $sql;
while($data = mysql_fetch_array($res))
{
echo $data['pseudo'];
echo '<BR>';
}
en fait l'erreur provient de cette ligne car si je la supprime ça fonctrionne tres bien:if (isset($age_mini) && !empty($age_mini)) {
$where[] = "naissance" . mysql_escape_string(" NOW() BETWEEN ".$age_mini." AND ".$age_maxi."");
}