![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 280 Pomógł: 46 Dołączył: 23.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o model, który pobiera newsy.
Mam na przykład takie coś:
Muszę również pobierać newsy: a) tylko 5 najnowszych b) tylko usunięte (delete = 1) c) tylko te, które mają datę publikacji mniejszą niż aktualna (publish < time()) d) tylko widoczne (visible = 1) e) połączenie a + b, a + c, b + c, a + b + c + d i tak dalej, i tak dalej. I pytanie, jak rozwiązać to aby nie tworzyć wielu metod, a najlepiej żeby była jedna czy dwie? Klasa bazy danych
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Najprostsze rozwiązanie jakie mi teraz przychodzi do głowy to przekazywanie warunku w parametrze
ale czy rozsądne, wątpię... Ten post edytował Turson 19.02.2014, 22:49:40 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Może coś w tym stylu:
Użycie:
Do prostych zastosowań wystarczy, do bardziej zaawansowanych zainteresowałbym się Doctrine 2, zamiast pisał coś swojego ![]() -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zrób sobie metodę np. whereBuilder z parametrami który buduje WHERE, potem w get... doklejasz to co zostało wygenerowane
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 280 Pomógł: 46 Dołączył: 23.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli ogólnie nic nowego czego bym nie wiedział. Myślałem nad tym, ale jakoś źle mi to wygląda. Nie wiem czy ktoś zauważył, ale używam bindowania więc wasze przykłady mi się nie przydadzą.
A kod w stylu:
wydaje mi się zbyt mocno przesadzony. Miałem i nadal mam nadzieje na inny sposób na to. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To może napisz chociaż jak byś chciał żeby to wyglądało. Bo "innych sposobów na to" istnieje mnóstwo, tylko ciężko wyczuć jaki Tobie się będzie podobał. Możesz np. napisać klasę, powiedzmy Query i użyć jej mniej więcej w ten sposób:
I powiedzmy, że build() zbuduje takie zapytanie: "SELECT title, created_at FROM news WHERE delete = :delete AND visible = :visible AND publish > :publish ORDER BY title ASC LIMIT 10". Możesz potem ten obiekt $query przekazać do metody query() z Twojej klasy Database i niech już ona sobie z nim radzi - wszystkie informacje - czyli samo zapytanie jak i parametry do zbindowania - tam siedzą. To jest jeden z wielu sposobów.. ale też może Ci się wydać mocno przesadzony... Możesz też użyć już wspomnianego Doctrine - integruje się szalenie łatwo, za pomocą composera ![]() -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
chyba za bardzo chcesz dobrze
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
chyba nie rozumiem
![]() -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
pisałem do Evinek
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 14:14 |