[RESOLU] affichage avec une période de date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] affichage avec une période de date

Re: affichage avec une période de date

par xTG » 15 janv. 2012, 14:35

Si c'est pas du détournement de code ça. |(X

Re: affichage avec une période de date

par Ryle » 15 janv. 2012, 13:00

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

par xTG » 15 janv. 2012, 12:53

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

par Ryle » 15 janv. 2012, 12:43

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

par xTG » 15 janv. 2012, 10:41

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

par Invité » 15 janv. 2012, 01:37

Merci
c'est génial ca fonctionne a merveille.

mais alors

POURQUOI ?????

Re: affichage avec une période de date

par xTG » 14 janv. 2012, 20:14

Essayes cela :
SELECT * FROM periodes WHERE (debut <= NOW()) AND (fin >= NOW())

affichage avec une période de date

par kaobar » 14 janv. 2012, 18:15

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.....