![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 4 Dołączył: 22.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
problem prawodopodobnie jest prosty ale nigdzie nie moglem znalesc tego - pewnie zle szukam (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
dopiero zaczynam z programowaniem obiektowy i dla mnie to troche abstrakcja zalozmy ze mamy wyswietlic liste 10 ostatnich newsow. mam klase 'news' aby pobrac dane trzeba podac w konstruktorze id, ten z koleji ustawia wszystkie dane po koleji. problem jest taki zeby pobrac kazdego newsa a) musimy znac jego id (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) za kazdym razem wykonuje zapytanie mysql, wiec w sumie wykonujemy 11 zapytan wiec rozwiazanie jest do wiadomo czego (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) pytanie jak to napisac aby to bylo dobrze |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Gecco
Nie będę pisał czegoś co już jest napisane http://propel.phpdb.org/trac/wiki/Users/Do...n/1.2/BasicCRUD Tu masz przykład wykorzystania tego w ORM, tylko że on daje o wiele więcej. Mała kopia z powyższego linku:
BookPeer to właśnie DAO, metoda retrieveByPK() pobiera jeden wiersz o zadanym kluczu głównym, oczywiście zwraca go jako obiekt AR czyli Book, metody set*() ustawiają wartości pól, get*() pobierają, save() zapisuje aktualny stan obiektu do bazy. W tym przypadku save() wywołuje update, ale jak stworzysz obiekt Book i nadasz mu wartości i dasz save() to wtedy wykona insert. Co do pobierania wielu to masz metodę w BookPeer::doSelect( Criteria $c ), która zwraca array obiektów (choć lepiej było aby zwracało iterator, ale może w nowej wersji 1.3 to zmienili) Book, jak nie ma spełniających Criteria to zwraca pustą tablicę. Co do Criteria, czyli warunków to znów kopię dam:
co odpowiada
i taki obiekt $c przekazujesz do BookPeer::doSelect() i ono wybiera te rekordy co spełniają te kryteria. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 10:48 |