![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
W celach edukacyjnych piszę sobie coś jakby Active Record. Zastanawiam się jak to jest z klauzulą WHERE w innych tego typu rozwiązaniach. Jak na razie to widziałem tylko w Code Igniter coś takiego:
$AR->where($nazwa_kolumy, $wartość); co oznacza WHERE nazwa_kolumny = wartość. Można oczywiście wywołać tą metodę wielokrotnie co nam połączy poszczególne zapytania. Problemem jest przekazywanie warunków typu WHERE nazwa_kolumny > wartość lub jakieś bardziej skomplikowane zapytania typu: WHERE (kolumna1 > 10 OR kolumna2 < 100) AND kolumna3 = 1 Można to niby rozwiązać przez przekazywanie całego warunku do metody where(); jednak stwarza to dodatkowe problemy. Jakie są wasze propozycje i jak Wy rozwiązujecie coś takiego u siebie? Z góry dziękuję za wszelkie rady/wskazówki/sugestie. Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Na wzór prepared statements, tj. where('age > ?', $age);
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
eZComponents udostępnia specjalny obiekt ezcQueryExpression uzbrojone w odpowiedni zestaw metod:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A może coś na wzór Propela?
Trochę zawikłane, ale ogólnie to co jest w nawiasach jest jako osobny obiekt Criterion, który się dodaje na pewnych warunkach do innego itd. ... EDIT:
Ten post edytował Sedziwoj 16.04.2008, 09:41:19 |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję wszystkim za rzeczowe odpowiedzi. Zrobię chyba dodatkowy obiekt Critereia (uproszczony) tak jak w Propelu.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie w Propelu masz dwa obiekty Criteria i Criterion, ale w Twoim przypadku byś chciał zrobić coś w stylu Criterion, bo zawiera właśnie cryteria (Criteria ma do tego złączenia, sortowanie, limity, offsety itp.)
EDIT: Głodnym, spacje zjadł (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ten post edytował Sedziwoj 16.04.2008, 10:39:00 |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
@Sedziwoj, już myślałem, że nowa klawiatura ma defekt (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Złączenia, limity, offset robię dodatkowymi metodami w samym AR. Jednak zastanowię się nad rozwiązaniem z Propela. Dzięki za wskazówki!
Ten post edytował ayeo 16.04.2008, 10:44:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 19:28 |