par
Ryle » 22 févr. 2006, 15:33
En effet, il s'agit bien de tes deux champs datedebut et datefin (je me suis d'ailleurs planté dans la derniere requête que j'ai donné, le month() est pas du bon côté
Avec tout plein détail ça nous donne ceci :
// $_POST['num_mois'] contient le mois sélectionné par l'utilisateur
// La requête SQL recherche (SELECT) les entrées (champ1, champ2, ...) dans la table maTable
$sql = "SELECT champ1, champ2, ..., datedebut, datefin FROM maTable ";
// DONT le mois de la date "début" est supérieur ou égal au mois sélectionné
$sql.= " WHERE MONTH(dateDebut) >= $_POST['num_mois'] ";
// ET le mois de la date "fin" est inférieur ou égal au mois sélectionné
$sql.= " AND MONTH(dateFin) <= $_POST['num_mois'] ";
Concernant ta deuxième question, dans MySql, les dates sont au format AAAA-MM-JJ (ce qui n'est pas le format us : MM-JJ-AAAA). Pour l'affichage, il n'y a pas de règle quant au moment ou il faut les transformer. En ce qui me concerne et pour me simplifier la tâche, je les change au format JJ/MM/AAAA juste après l'exéction de la requête, au moment ou je viens lire le champ, comme ça je suis toujours sûr du format que je manipule dans mes variables, mais tu peux tout aussi bien ne le faire qu'au moment où tu l'affiches
Prépare toi une petite fonction pour basculer d'un format à l'autre. C'est quelque chose que l'on fait régulièrement dès le moment où on manipule des dates
N'hésites pas à me le dire si je ne suis pas clair ou si tu as besoin de plus d'infos

En effet, il s'agit bien de tes deux champs datedebut et datefin (je me suis d'ailleurs planté dans la derniere requête que j'ai donné, le month() est pas du bon côté :)
Avec tout plein détail ça nous donne ceci :
[php]
// $_POST['num_mois'] contient le mois sélectionné par l'utilisateur
// La requête SQL recherche (SELECT) les entrées (champ1, champ2, ...) dans la table maTable
$sql = "SELECT champ1, champ2, ..., datedebut, datefin FROM maTable ";
// DONT le mois de la date "début" est supérieur ou égal au mois sélectionné
$sql.= " WHERE MONTH(dateDebut) >= $_POST['num_mois'] ";
// ET le mois de la date "fin" est inférieur ou égal au mois sélectionné
$sql.= " AND MONTH(dateFin) <= $_POST['num_mois'] ";
[/php]
Concernant ta deuxième question, dans MySql, les dates sont au format AAAA-MM-JJ (ce qui n'est pas le format us : MM-JJ-AAAA). Pour l'affichage, il n'y a pas de règle quant au moment ou il faut les transformer. En ce qui me concerne et pour me simplifier la tâche, je les change au format JJ/MM/AAAA juste après l'exéction de la requête, au moment ou je viens lire le champ, comme ça je suis toujours sûr du format que je manipule dans mes variables, mais tu peux tout aussi bien ne le faire qu'au moment où tu l'affiches :)
Prépare toi une petite fonction pour basculer d'un format à l'autre. C'est quelque chose que l'on fait régulièrement dès le moment où on manipule des dates ;)
N'hésites pas à me le dire si je ne suis pas clair ou si tu as besoin de plus d'infos :)