![]() |
![]() ![]() |
![]() |
![]()
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%) ![]() ![]() |
Propel generuje takie funkcje w locie z tego wiem. Ewentualnie tutaj masz informacje jak ominąć ten problem w naturalny dla propela sposób. -------------------- Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
|
|
|
![]()
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(); -------------------- -wdev-
|
|
|
![]()
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 -------------------- Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:04 |