Probleme de cotes avec NOW()

jantonazzo Messages postés 46 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 7 avril 2010 - 28 avril 2006 à 13:07
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 28 avril 2006 à 18:42
Bonjour,

J' ai un petit probleme de requete.

J'ai un input où le client inscrit une date.

Dans ce cas de figure où une date est inscrite tout fonctionne.

Par conrtre, si le client n'inscrit pas de date, le traitement suivant s'effectue: 

if ($date == "") {
$date .= 'NOW()';}

Donc la variable $date prend la valeur NOW(), ce qui correspond à la date du jour.

Mon probleme est que lorsque j'envoie ma requete

$sql = "SELECT * FROM call_calender, user WHERE xxx AND date='$date' ";

Le serveur reçoit:

$sql = "SELECT * FROM call_calender, user WHERE xxx AND date='$NOW()' ";

Le souci est que NOW() doit etre envoyé sans les cotes ' '.

Et si je retire les cotes dans mon select c'est la date qui sera envoyé sans les cotes.

Et ne sera donc pas interpreté

Quelqu'un aurrait une solution s'il vous plait???

Merci d'avance.

11 réponses

jantonazzo Messages postés 46 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 7 avril 2010
28 avril 2006 à 13:11
Petite correction sur mon post:





[...]

Le serveur reçoit:

$sql = "SELECT * FROM call_calender, user WHERE xxx AND date='NOW()' ";

[...]

Il n'y a pas de $ dans'NOW()'
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
28 avril 2006 à 16:00
if ($date == "") {
$date = NOW();}

c'est mieux

tartdigrade

tu pourrais remplacer now() par mktime()
0
jantonazzo Messages postés 46 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 7 avril 2010
28 avril 2006 à 16:21
Merci pour ta reponse mais NOW() fonctionne bien
Le probleme n'est pas là.

En fait,

Quand j'ecris dans requette la variable $date avec des cotes:     date='$date'

Il n'y que la date inscrite qui passe car quand la variable est vide
le script inscrit dans dans la variable$datela valeur
NOW().

Le probleme est que la valeur NOW() se retrouve entre deux cotes date='$date'
ce qui donne date='NOW()'

Or pour fonctionner la valeur NOW() ne doit pas être entre cotes. date=NOW()
 
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
28 avril 2006 à 16:49
c'est un peu la reponse que je t'ai donne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jantonazzo Messages postés 46 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 7 avril 2010
28 avril 2006 à 17:01
Les cotes du script :



if ($date == "") {
$date = 'NOW()';}


sont utiles uniquement pour le script.

De plus si tu ecrit ce script sans les cotes:
if ($date == "") {
$date = NOW();}
Le scriptne fonctionne pas.

Le probleme ce sont les cote de la requette. Celles qui entour la variable
$date
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 avril 2006 à 17:02
salut
je ne pense pas que now() soit du php
mais plutot mysql

$date=date(Y/m/d) ;
pour recuperer la date courante
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
28 avril 2006 à 17:05
ok je viens de comprendre j'etais loin

alors pourquoi pas faire

if($date=="")
    $sql = "SELECT * FROM call_calender, user WHERE xxx AND date=NOW() ";

else
    $sql = "SELECT * FROM call_calender, user WHERE xxx AND date='$date' ";
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 avril 2006 à 17:07
maintenant il faut verifier que ton format de date est bien sous la forme
AAAA/MM/JJ  dans ta base (avec slashes)

si c'est aaaammjj, tu peux tenter

if ($date == "")
{
$date=date(Y).date(m).date(d);
}
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 avril 2006 à 17:08
oui tu peux !
0
jantonazzo Messages postés 46 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 7 avril 2010
28 avril 2006 à 17:40
Genial c'est Exactement ça!

Merci messieurs.

Finalement je vais prendre la solution de sidf

C'est le code le plus light.

Mais l'autre solution fonctionne quand meme!!

Merci!
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
28 avril 2006 à 18:42
$sql = "SELECT * FROM call_calender, user WHERE xxx AND date= ";
if ( isset($date) ) {
$sql.= "'.$date.'";
} else {
$sql.= " NOW() ";
}

mysql_query($sql);
0
Rejoignez-nous