PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-11-2010 04:14:42

Leuko
Membre
Inscription : 24-10-2010
Messages : 6

comparaison de date avec un chaine

bonjour smile

une énigme que je n'arrive pas résoudre

pourquoi cette requete fonctionne ?
[code: php]$requete = "SELECT SUM(Somme) AS ind FROM mouve_".$ident." WHERE (DateMouve <= \"2008-11-31\" && Categorie != \"\")";[/code]

et celle-ci non
[code: php]$date = "2008-11-31";
$requete = "SELECT SUM(Somme) AS ind FROM mouve_".$ident." WHERE (DateMouve <= $date && Categorie != \"\")";[/code]

DateMouve étant un champs déclaré en DATE dans ma table


je ne comprends pas pourquoi la deuxième requête ne me revoie aucun résultat
enfin, je me doute un peu que c'est a cause de la variable $date, mais pourquoi ??

Dernière modification par Leuko (12-11-2010 06:44:58)

Hors ligne

#2 12-11-2010 09:15:16

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : comparaison de date avec un chaine

   $date = "2008-11-31";
   $requete = "SELECT SUM(Somme) AS ind FROM mouve_$ident WHERE (DateMouve <= '$date' && Categorie != '')";

pourquoi, bah parce que tu te complique la vie wink

a++

Hors ligne

#3 12-11-2010 19:16:06

Leuko
Membre
Inscription : 24-10-2010
Messages : 6

Re : comparaison de date avec un chaine

sa à l'air de marcher
merci tout plein smile

mais il y a quand même quelque chose qui m'intrigue
je pensais que la mise entre quote était pour faire passer du littérale
et j'ai beau relire le paragraphe du site sur la concaténation, je ne comprends pas pourquoi c'est la valeur de $date qui est renvoyé et non pas $date sous forme de chaine alpha -numérique
et j'avoue aussi avoir du mal a discerner la différence entre les simple quote ' et les double "

Hors ligne

#4 13-11-2010 06:59:54

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : comparaison de date avec un chaine

Saluton,
Dans la syntaxe proposée par Pierrot ce sont les guillemets (double quotes) qui encapsulent le contenu de la chaîne $requete, les substitutions de variables PHP par leur valeur y sont donc réalisées, celles-ci fussent-elles encapsulées de simples quotes à l'intérieur de l'encapsulation mère.
Si cette syntaxe te pose problème je t'invite à regarder du côté de la fonction sprintf().

$requete = sprintf("SELECT SUM(Somme) AS ind FROM mouve_%s WHERE (DateMouve <= '%s') AND (Categorie <>  '' )",$ident, $date);

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 14-11-2010 15:14:14

Leuko
Membre
Inscription : 24-10-2010
Messages : 6

Re : comparaison de date avec un chaine

merci pour toutes ces explications smile

Hors ligne

#6 15-11-2010 16:18:30

pablofr
Membre
Inscription : 31-08-2009
Messages : 16

Re : comparaison de date avec un chaine

J'aurai mit Kie lumo ekzistas ankaŭ ombro troviĝa. la la place de Kie lumo eksistas ankaŭ ombro troviĝas.

Hors ligne

Pied de page des forums