Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Propel - Criteria ?, dynamicznie wyliczane wartości
arone
post 26.10.2006, 23:19:31
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.10.2006

Ostrzeżenie: (0%)
-----


Witam.

Krótko i zwięźle. Pytanie dotyczy biblioteki PROPEL.
Jak można stworzyć bez użycia SQLa obiekt Criteria dla zapytanie typu:

  1. SELECT id FROM tabelka WHERE (CURRENT_TIMESTAMP - jakas_data) < '3600 second';


Oczywiście mój problem leży w tym jak zapisać tą różnicę bo samo porównanie nie jest problemem.
Za pomoc w rozwiązaniu problemu będę wdzięczny.

arone

Ten post edytował arone 26.10.2006, 23:20:19
Go to the top of the page
+Quote Post
dr_bonzo
post 26.10.2006, 23:30:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Przenosze php% -> Gotowe skrypty


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
splatch
post 27.10.2006, 18:54:52
Post #3





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Użyj unix timestamp i porównuj jak normalne liczby.

W Criterii masz również odpowiednie stałe.


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
arone
post 27.10.2006, 20:50:09
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.10.2006

Ostrzeżenie: (0%)
-----


Wszystko ok ale jak mam zapisać różnice(CURRENT_TIMESTAMP - jakas_data) za pomocą metod obiektu Criteria?

Zaznaczam że "jakas_data" jest kolumną tabelki.

Proszę o przykład.
Go to the top of the page
+Quote Post
splatch
post 27.10.2006, 22:33:08
Post #5





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przepraszam za poprzednią odpowiedź, nie doczytałem do końca pytania..

Jak wiesz Criteria->add() oczekuje 3 argumentów
1. nazwy kolumny/aliasu
2. oczekiwanej wartości
3. operator

Argumenty są wykorzystywane w taki sposób, że powstaje wyrażenie kolumna operator wartość. W Twoim przypadku wygląda to inaczej - (CURRENT TIMESTAMP - kolumna) operator wartość i odbiega od standardowego wykorzystania Criterii.
Dlatego w grę wchodzą dwa/trzy rozwiązania:
1. stworzyć stałą w klasie Peer o jakiejś nazwie i o wartości (CURRENT TIMESTAMP - kolumna), z tym, że tym wypadku każda kolejna kolumna to dodatkowa stała.
2. walonka z Criterią i dodanie obsługi takiej składni samodzielnie
3. użycie składni:
Criteria->add(kolumna, "twój kod SQL", Criteria::CUSTOM)

... 4. modlić się by prace nad Propelem 2.0 zostały przyśpieszone, ponieważ jest w nim przebudowana Criteria, która umożliwi takie konstrukcje bez problemu.

Pozdrawiam,
Łukasz

Ten post edytował splatch 28.10.2006, 09:29:52


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
arone
post 28.10.2006, 16:43:17
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.10.2006

Ostrzeżenie: (0%)
-----


Bardzo dziękuję za wyczerpującą odpowiedź.
Już się zaczynam modlić snitch.gif

Dla zainteresowanych: Obecnie wykorzystywałem 3 sposób guitar.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 06:55