Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-04-2010 21:54:45

yveson33
Membre
Lieu: bordeaux
Date d'inscription: 13-05-2008
Messages: 111
Site web

zf 1.10 dates requetes preparées

Bonjour,

Aujourd 'hui un souci avec les dates dans mon site web. mon souci vient de ma requête c'est un bout de code vite fait. le but évidement c'est  récupérer les enregistrements entre deux dates .Le format de date dans la bd est yyyy-mm-dd

Code:

 if ($datedebut <> ''  && $datefin <> '') {
         //echo $datefin;
         $select->where('t.date_depart  BETWEEN  ? AND ?', $datedebut, $datefin);
         //$select->where("t.date_depart  BETWEEN  $datedebut AND $datefin");
         // echo $select."\n";
     }

quand j'exécute cette requête préparée la variable $datefin prend la même valeur que $datebut bien que les valeurs sont à la base différentes.

à l'inverse quand j'exécute la requête simple

Code:

 if ($datedebut <> ''  && $datefin <> '') {
         $select->where("t.date_depart  BETWEEN  $datedebut AND $datefin");
       }

dans ce cas $datedebut et $datefin sont bien différents.

alors je me demande pourquoi cette différence de comportement.


cordialement;

Hors ligne

 

#2 29-04-2010 22:07:51

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: zf 1.10 dates requetes preparées

Hello,

Tu dois le faire en 2 étapes :

Code:

 if ($datedebut <> ''  && $datefin <> '') {
     $select->where('t.date_depart >=  ?', $datedebut);
     $select->where('t.date_depart <= ?', $datefin);
}

La clause where() accepte bien 3 paramètres mais le troisième paramètre est dans ce cas le type de la valeur fournie.

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 29-04-2010 22:31:44

yveson33
Membre
Lieu: bordeaux
Date d'inscription: 13-05-2008
Messages: 111
Site web

Re: zf 1.10 dates requetes preparées

hello,

merci en effet il fonctionne j'aurais pu passer encore un moment pour decouvrir cette subtilité, encore merci

Hors ligne

 

#4 29-04-2010 22:32:36

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: zf 1.10 dates requetes preparées

j'utilise toujours les paramètre nommés pour éviter ce genre de pb

Code:

WHERE t.date_depart >= :dateDebut

Puis l'ors de l'exécution on passe un tableau associatif les clefs étant les paramètres nommées et les valeurs celles de diverse variable.
ainsi ce n'est pas sensible à l'ordre ni à la répétition. un même paramètre nommé peut être utilisé plusieurs fois dans la requête. (Seul mySQLi ne supporte pas la répétition)

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages