Requete SQL BETWEEN 2 dates

Petit nouveau ! | 7 Messages

24 mai 2007, 09:36

Bonjour tout le monde :wink:

Voilà mon probléme :
J'ai une table(dans mysql) t_date dans laquel j'ai deux champs : id_date et date
Exemple

Code : Tout sélectionner

1 2007-05-01 2 2007-05-03 3 2007-05-04 4 2007-05-24
les dates sont dans l'ordre
Je voudrai faire un filtre pour récupérer les "id_date" de plusieurs date comprisent entre deux dates :roll:

Exemple
$date_saisi = 2007-05-02 
$aujourdhui = 2007-05-24
résultats: 2,3,4

le code:
$sql = 'SELECT id_date FROM t_date WHERE date BETWEEN '.$date_saisi.' AND '.$aujourdhui.' ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req); 

if(mysql_num_rows($req)>0)
 {
  $id_date = $data['id_date'];
 }
La requete ne plante pas par contre aucun enregistrement :shock: (j'ai cherché sur le net, ils parlent de #ladate# dans la requete mais comment faire pour une variable ?)
Merci beaucoup pour les réponses :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

24 mai 2007, 09:56

Les dates sont des chaînes de caractères, tu dois donc les entourer de quotes.
$sql = "SELECT id_date FROM t_date WHERE date BETWEEN '".$date_saisi."' AND '".$aujourdhui."'";

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2007, 09:57

Modération :
Cork1e, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 7 Messages

24 mai 2007, 11:17

Merci charabia :wink: , probléme de quotes tout con :(