Page 1 sur 1

probleme requete date

Posté : 05 oct. 2006, 13:56
par Vince89
Bonjour,

Voila j'ai un problème avec une requete :

Code : Tout sélectionner

SELECT nom_pers, prenom_pers, num_pers, DATE_FORMAT(`date_debut_abs`,'%d/%m/%Y'), heure_debut_abs, DATE_FORMAT(`date_fin_abs`,'%d/%m/%Y'), heure_fin_abs, raison_abs, justificatif FROM absence, personne WHERE absence.num_pers=personne.num_pers AND (DATE_FORMAT(`date_debut_abs`,'%d/%m/%Y') > '$date' OR DATE_FORMAT(`date_fin_abs`,'%d/%m/%Y') > '$date' OR (date_fin_abs='0000-00-00' AND date_debut_abs<>'0000-00-00'))

Voila, en gros, je voudrais que l'utilisateur saissise une date, et que toutes les personnes qui sont entre cette date a aujourd'hui sont absente ou on été absente soit afficher.

La varible est egale a une date sous la forme : jj/mm/aaaa.

J'ai essayé de tourner cette requeté dans tout les sens et elle ne fonctionne. Avez-vous une idée. Merci d'avance

Posté : 05 oct. 2006, 19:43
par Cyrano
Parce que normalement ta variable devrait être au format AAAA-MM-JJ et non dans l'autre sens.

Posté : 06 oct. 2006, 08:38
par Vince89
merci je vais tester

Posté : 06 oct. 2006, 10:18
par Vince89
Bon, j'ai retesté mais j'ai le même probleme.

La date qui est saisi par l'utilisateur est en suite changer grace a :

list($jour, $mois, $annee) = explode("/", $date);
    $dat = $annee."-".$mois."-".$jour;
quand je fais un echo de dat j'ai bien la date sous la forme aaaa-mm-jj


ensuite ma requete :
SELECT nom_pers, prenom_pers, absence.num_pers, DATE_FORMAT(`date_debut_abs`,'%d/%m/%Y'), heure_debut_abs, DATE_FORMAT(`date_fin_abs`,'%d/%m/%Y'), heure_fin_abs, raison_abs, justificatif
		FROM absence, personne
		WHERE absence.num_pers=personne.num_pers
		AND (date_debut_abs > $dat
		OR date_fin_abs > $dat
		OR (date_fin_abs like '0000-00-00'
		AND date_debut_abs not like '0000-00-00'))
Mais cela m'affiche tout les champs enregistrer. Je suis vraiment perdu. D'ou viens mon erreur.

Merci

Posté : 06 oct. 2006, 15:40
par Cyrano
dans tes clauses WHERE, au lieu de "like" ou "not like", utilise plutôt "=" ou "<>" (différent en SQL)