![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 20.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam w bazie 3 tabele:
Users (user_id, ...) News (news_id, user_id ref users, ...) comments (comment_id, ...) Zamierzam skonstrować tego typu zapytanie:
Napisałem kod:
Ten kod działa, dopóki nie odkomentuję linii, gdzie zliczam komentarze. Gdy to zrobię propel generuje zapytanie, które pobiera tylko tą jedną kolumnę, nie pytając o wszystkie dane z tabel news i users. Jak to naprawić? //OK, jakoś to poprawiłem. Ale jak teraz przy wyświetlaniu w template: dostać się do kolumny z ilością komentarzy (nb_comments)? Ten post edytował Silver_Fletcher 20.12.2010, 16:12:29 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Miałem dzisiaj podobny problem, tylko z Doctriną. To jest efekt działania SQL-owej funkcji count. Myśmy go rozwiązali poprzez stworzenie subkwerend. Robisz mniej więcej coś takiego (piszę z czapy i mocno zmęczony, więc mogą być błędy, ale chodzi o zasadę). Kod dla Doctrine, ale mam nadzieję, że pomoże.
A później dostęp przez $comment->getPeersCount(); |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zamiast Tworzenia subquery warto pomyśleć o grupowaniu, wtedy zapytanie w Doctrine będzie wyglądać następująco:
Albo dla propel:
Ten post edytował Quadina 22.12.2010, 21:21:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 09:47 |