Page 1 sur 1

affichage avec une période de date

Posté : 14 janv. 2012, 18:15
par kaobar
Bonjour et Bonne et heureuse année à toutes et à tous,

voila j'ai besoin d'un peu d'aide.

J'ai une base de donnée dans laquelle il y à:

- un champ debut au format date,
- un champ fin au format date, (YYYY-mm-dd)
- un champ periode au format varchar.
- un champ id

j'iterroge cette base avec ceci:
  $date = date("Y-m-d");
  

  mysql_select_db($database_dbprotect, $bdd);

  $query_users = "SELECT * FROM periodes WHERE (debut <= $date) AND (fin >= $date) "; 

  $users = mysql_query($query_users, $bdd) or die(mysql_error());
	while (	$row_users = mysql_fetch_assoc($users)) {

   $session = $row_users['periode'];
  } 
mais je n'arrive pas à afficher l'enregistrement qui correspont à:
:oops:
compris entre debut, aujourd'hui, fin

un peu d'aide SVP!!!
merci par avance.....

Re: affichage avec une période de date

Posté : 14 janv. 2012, 20:14
par xTG
Essayes cela :
SELECT * FROM periodes WHERE (debut <= NOW()) AND (fin >= NOW())

Re: affichage avec une période de date

Posté : 15 janv. 2012, 01:37
par Invité
Merci
c'est génial ca fonctionne a merveille.

mais alors

POURQUOI ?????

Re: affichage avec une période de date

Posté : 15 janv. 2012, 10:41
par xTG
Parce que ton $date est une chaîne de caractère et qu'il devait pas faire la conversion vers un timestamp tout seul.

Re: affichage avec une période de date

Posté : 15 janv. 2012, 12:43
par Ryle
Parce que ton $date est une chaîne de caractère et qu'il devait pas faire la conversion vers un timestamp tout seul.
En fait c'est surtout parce que comme toute chaine de caractère en sql, celle-ci doit être délimitée par des apostrophes ;)
$query_users = "SELECT * FROM periodes WHERE debut <= '$date' AND fin >= '$date' ";

Re: affichage avec une période de date

Posté : 15 janv. 2012, 12:53
par xTG
Certes mais l'auteur n'a pas annoncé d'erreur alors que son code est bien construit pour en afficher si c'est le cas.
Donc je pense pas que cela ait posé problème dans la requête.

A moins que du coup il ai transformé les tirets par des moins et ai effectué le calcul ? #-o

Re: affichage avec une période de date

Posté : 15 janv. 2012, 13:00
par Ryle
Ben si :)

Puisqu'il n'y a pas d'apostrophe autour, pour mysql c'est qu'il ne s'agit pas d'une chaine. Du coup il va exécuter les soustractions demandées avant de vérifier si la date est inférieure au nombre obtenu... ce qui est syntaxiquement correct :)

Re: affichage avec une période de date

Posté : 15 janv. 2012, 14:35
par xTG
Si c'est pas du détournement de code ça. |(X