Aide pour criteres de recherche

nagrom_om Messages postés 163 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 1 novembre 2006 - 20 juil. 2005 à 15:30
nagrom_om Messages postés 163 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 1 novembre 2006 - 20 juil. 2005 à 17:34
j'ai une table "conges" dans laquelle des congés sont déposés. J'ai fait un module de listing en fonction de certains criteres. Pour l'instant mes criteres sont juste : congé accepté, non accepté, non consulté qui dépendent d'un champ de ma base.

Maintenant j'aimerai rajouter comme critere une date minimum pour la recherche.
J'aimerai donc comparer une date saisie (au moyen de deux selectBox MoisDeb et AnneeDeb) au champs "date_depart" de ma base qui est un timestampz.

Pour l'instant j'ai ca :
$timestamp_date = mktime(0, 0, 0, $moisDeb, 0, $anneeDeb);
$dateRecherche = date('Y-m',$timestamp_date);

if ($radioCriteres=="Tous")
{
//Pour tout rechercher
$QuerySearch = "SELECT *
FROM conges
WHERE (numero_util = ". $Utilisateur."
AND date_depart > ".$dateRecherche.");"; /*voila moi je le voyai comme ca mais comment tronquer date_depart ??? ou encore mieu transformer date_depart directement en timestamp ??*/
}
else if ($radioCriteres=="Accept")
{
//Pour rechercher que ceux qui ont été validés

$QuerySearch = "SELECT *
FROM conges
WHERE numero_util = ". $Utilisateur." AND (accept_responsable 't' AND accept_direction 't');";
}
else if ($radioCriteres=="Nonaccept")
{
//Pour rechercher que ceux qui n'ont pas été validés
$QuerySearch = "SELECT *
FROM conges
WHERE numero_util =". $Utilisateur." AND (accept_responsable 'f' OR accept_direction 'f');";
}
else if ($radioCriteres=="Nonconsult")
{
//Pour rechercher que ceux qui n'ont pas été validés
$QuerySearch = "SELECT *
FROM conges
WHERE numero_util =". $Utilisateur." AND (accept_responsable 'nc' OR accept_direction 'nc');";
}

else
{
//Pour tout rechercher
$QuerySearch = "SELECT *
FROM conges
WHERE numero_util = ". $Utilisateur;
}

$ptr->query($QuerySearch) ;

quand je fais un echo de ce que me retourne ma base il me renvoi un truc du genre 2005-08-03 00:00:00+02

Je suis capable du pire comme du meilleur, mais dans le pire c'est moi le meilleur !!!

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juil. 2005 à 15:36
Bonjour quand meme...,



pourquoi tu ne rajoutes pas plutot un jour a ta date minimale...?
0
nagrom_om Messages postés 163 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 1 novembre 2006
20 juil. 2005 à 16:12
Oups pardon pour le Bonjour !!!!
Bonjour donc.
Le jour ce n'est pas bien grave pasque du coup j aurais le timestamp du premier jour du mois donc inferieur a n'importe quelle date du mois. je ne cherche pas a etre plus precis pour la recherche.

en fait je cherche a savoir si y'a moyen que je fasse un exlpode de date_depart (le champs de ma table) et de le comparer a $dateRecherche.

Merci
Je suis capable du pire comme du meilleur, mais dans le pire c'est moi le meilleur !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juil. 2005 à 16:15
Il faut juste que tu transformes une des deux dates pour que les deux
soient au meme format. De preference de php vers mysql, comme ca tu
peux comparer dans ta requete facilement.
0
nagrom_om Messages postés 163 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 1 novembre 2006
20 juil. 2005 à 17:04
je peux comparer 2005-08-03 00:00:00+02 et 2005-08-00 00:00:00+02 directement donc sans les transformer en timestampz ?

Je suis capable du pire comme du meilleur, mais dans le pire c'est moi le meilleur !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nagrom_om Messages postés 163 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 1 novembre 2006
20 juil. 2005 à 17:34
Car la j ai :

$timestamp_date = mktime(0, 0, 0, $moisDeb, 1, $anneeDeb);
$dateRecherche = date('Y-m',$timestamp_date);
$dateRecherche .= "-01 00:00:00+02";

if ($radioCriteres=="Tous")
{
//Pour tout rechercher
$QuerySearch = "SELECT *
FROM conges
WHERE (numero_util = ". $Utilisateur."
AND date_depart > ".$dateRecherche.");";
}
else if ($radioCriteres=="Accept")
{
//Pour rechercher que ceux qui ont été validés

$QuerySearch = "SELECT *
FROM conges
WHERE numero_util = ". $Utilisateur." AND (accept_responsable 't' AND accept_direction 't')
AND date_depart > ".$dateRecherche;
}
else if ($radioCriteres=="Nonaccept")
{
//Pour rechercher que ceux qui n'ont pas été validés
$QuerySearch = "SELECT *
FROM conges
WHERE numero_util =". $Utilisateur." AND (accept_responsable 'f' OR accept_direction 'f')
AND date_depart > ".$dateRecherche;
}
else if ($radioCriteres=="Nonconsult")
{
//Pour rechercher que ceux qui n'ont pas été validés
$QuerySearch = "SELECT *
FROM conges
WHERE numero_util =". $Utilisateur." AND (accept_responsable 'nc' OR accept_direction 'nc')
AND date_depart > ".$dateRecherche;
}

else
{
//Pour tout rechercher
$QuerySearch = "SELECT *
FROM conges
WHERE (numero_util = ". $Utilisateur."
AND date_depart > ".$dateRecherche.");";
}

$ptr->query($QuerySearch) ;

et j obtient une erreur : Invalid SQL: SELECT * FROM conges WHERE numero_util =1 AND (accept_responsable = 'f' OR accept_direction = 'f') AND date_depart > 2007-01-01 00:00:00+02

la dateRecherche est correctement créée elle a le bon format

Je suis capable du pire comme du meilleur, mais dans le pire c'est moi le meilleur !!!
0