Bonjour,
j'ai passé la nuit à chercher la solution de partout mais je n'y suis pas arrivé alors je viens chercher de l'aide.

J'ai une table sql dans laquelle se trouve un champ datetime avec une date sous la forme yyyy-mm-dd H:i

J'utilise un calendrier php ou les jours et les mois sont sous la forme 1, 2 ,3 et pas 01, 02, 03

Je veux sélectionner dans la table sql les entrées correspondant à certaines date du calendrier, en regardant donc si la date de la table est la meme que celle du calendrier.

yyyy-mm-dd H:i doit donc etre égal à yyyy-m-d

J'ai checrhé du coté de la fonction DATE (pour sélectionner déjà que la date du datetime et pas l'heure, ça je pense que ça marche) et ensuite du coté de la fonction DATE_FORMAT pour convertir la date de la table au format de la date du calendrier php, lors de la requette. Mais rien que je tente ne marche, ça n'affiche rien, ça ne sort pas de la table les entrée voulues par rapport aux dates demandées.

Ma requette original est la suivante (la variable $u contient le jour):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$sql = "SELECT cle, datedebut 
FROM poste 
WHERE datedebut='$annee-$mois-$u' 
  and datefin >= curdate() 
  and cle in ( select distinct cleposte from inscription where nivol = '$authpseudo' and valide=1 )";
Quelques unes de mes tentatives ressemblent à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$sql = "SELECT DATE(DATE_FORMAT(datedebut,'%Y-n-%w')) AS datedebut, cle 
FROM poste 
WHERE datedebut='$annee-$mois-$u' and datefin >= curdate() 
  and cle in ( select distinct cleposte from inscription where nivol = '$authpseudo' and valide=1 )";
 
$sql = "SELECT cle, datedebut 
FROM poste 
WHERE DATE(DATE_FORMAT(datedebut,'%Y-n-%w'))='$annee-$mois-$u' 
  and datefin >= curdate() 
  and cle in ( select distinct cleposte from inscription where nivol = '$authpseudo' and valide=1 )";