Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu]Condition par date dans CRUDLIST

Posted by dantahoua on 04/21/2010 22:04

Bonjour! Dans la méthode "_indexSetConditions", on peut ajouter des conditions. Ici j'essaye de rajouter une condition en rapport avec les dates: $cond->addCondition('date_start','>',date('Ymd')); Ça ne fonctionne pas car il transforme la date dans "_prepareValue" en string en rajoutant des quotes. Y aurait-il moyen soit:

  • De passer un argument de plus pour qu'il ne quote pas la valeur passée
  • De passer directement un bout de MYSQL (genre CURDATE())

Merci!

  [Opened] Condition par date dans CRUDLIST

Reply #1 Posted by dantahoua on 04/21/2010 22:22

Notez que si je modifie le fichier "/lib/jelix/dao/jDaoFactoryBase.class.php", dans la fonction "_prepareValue", je rajoute dans le case du fieldType case 'date':break; (On pourrait aussi vérifier que c'est bien une date au bon format...) ça fonctionne. Mais je n'aime pas trop modifier les fichiers du Core de Jelix. Y-a-t-il moyen d'overrider sinon? Merci

  [Opened] Condition par date dans CRUDLIST

Reply #2 Posted by laurentj on 04/22/2010 15:54

Salut,

c'est quoi comme type de champs, date_start, dans ta base ?

  [Opened] Re: Condition par date dans CRUDLIST

Reply #3 Posted by dantahoua on 04/22/2010 16:58

Le champ est de type "date"

  [Opened] Condition par date dans CRUDLIST

Reply #4 Posted by laurentj on 04/25/2010 13:35

Ça ne fonctionne pas car il transforme la date dans "_prepareValue" en string en rajoutant des quotes

Déjà, la fonction date renvoi une chaine, donc à la base, on a bien une chaine. Ensuite, que cela soit une chaine SQL dans la requête SQL, ce n'est absolument pas génant, dans la mesure où la plupart des bases traitent les champs date comme des chaines.

Donc à priori il n'y a absolument pas de problème.

Quelle est l'erreur SQL ? Qu'est ce qui ne fonctionne pas exactement ?

PS : on ne dit jamais "ça fonctionne pas" sans indiquer l'erreur qui apparait, sans indiquer le résultat.

  [Opened] Re: Condition par date dans CRUDLIST

Reply #5 Posted by dantahoua on 04/28/2010 21:09

Mea culpa. J'ai fait des test directement en MySql et que je fasse: SELECT * FROM jsurvey_survey WHERE date_start > '20100424' ou SELECT * FROM jsurvey_survey WHERE date_start > 20100424 Le résultat est le même. Mon erreur venait probablement du fait qu'au début je passait la date sous forme "2010-04-24"... Et qu'il était tard... Merci!

 
Page
  1. Condition par date dans CRUDLIST