Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Propel - Criteria ?, dynamicznie wyliczane wartości
arone
post
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
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
Go to the top of the page
+Quote Post
splatch
post
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.
Go to the top of the page
+Quote Post
arone
post
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
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
Go to the top of the page
+Quote Post
arone
post
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ć (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Dla zainteresowanych: Obecnie wykorzystywałem 3 sposób (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 13:20