Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][propel] warunek z data
Forum PHP.pl > Forum > PHP > Frameworki
AxZx
witam

to symfony zamiast pomagac wrzuca kolejne klody pod nogi (albo raczej pod palce:)

w tabeli profil mam kolumne data_urodzenia w formacie YYYY-mm-dd
w formularzu podaje przedzial wieku, czyli np 16 - 22
chcialbym teraz pobrac rekordy z bazy ktore spelniaja ten warunek.

  1. YEAR(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(data_urodzenia))) > 16 AND YEAR(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(data_urodzenia))) < 22


kombinuje z addAsColumn i getColumnForAs i jeszcze Criteria::custom ale to nic nie daje - caly czas jakis blad.
mazur83
moze cos takiego zadziala:

Kod
$c = new Criteria();
$date_16 = date('Y-m-d',mktime(0, 0, 0, date("m")  , date("d"), date("Y") - 16));
$date_22 = date('Y-m-d',mktime(0, 0, 0, date("m")  , date("d"), date("Y") - 22));
$c->addAnd(ProfilPeer::DATA_URODZENIA,$data_22,Criteria::GREATER_EQUAL);
$c->addAnd(ProfilPeer::DATA_URODZENIA,$data_16,Criteria::LESS_EQUAL);
AxZx
moge uznac to za rozwiazanie tymczasowe - droga na okolo. jednak przydaloby sie wiedziec jak rozne funkcje mozna w sql wykonywac poprzez propela:)

tylko ze mam dziwny problem z tym
kod jaki utworzylem z Twoja pomoca wyglada tak:
  1. <?php
  2. $date_min = date('Y-m-d',mktime(0, 0, 0, date('m') , date('d'), date('Y') - $wiek_min));
  3. $c->add(constant($grupa_peer.'::DATA_URODZENIA'), $date_min, Criteria::GREATER_EQUAL);
  4.  
  5. $date_max = date('Y-m-d',mktime(0, 0, 0, date('m') , date('d'), date('Y') - $wiek_max));
  6. $c->add(constant($grupa_peer.'::DATA_URODZENIA'), $date_max, Criteria::LESS_THAN);
  7. ?>


dlaczego problemgeneruje zapytanie tylko z jednym warunkiem?
  1. profil.DATA_URODZENIA<'1982-08-11'


o czyms znowu zapomnialem?

pozdrawiam
mazur83
nie add tylko addAnd

pozdrawiam
SongoQ
Zeby odwolac sie 2x do tego pola trzeba zwrocic nowe kryteria i na nowych ktyreriach wykonac warunek
AxZx
w tym jest problem ze ktos moze wpisac w formularzu tylko jedna wartosc - wtedy tylko raz bedzie podany warunek.
ale widze ze jak w jednym warunku dam $c->addAnd to jest dobrze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.