![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.11.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Pobieram dane z 3 tabel, różnią się kolumnami (kolumna created_at jest w każdej), aktualnie pobieram każdą z tabel i za pomocą ->map() dodaje fake kolumne (nie obejde tego, musze ją dodawać), sortuje za pomocą usort(według created_at) i łącze te 3 tabele za pomocą merge_array a następnie robię paginacje. Problem jest taki, że mimo paginacji zawsze pobierają się wszystkie rekordy. Ta paginacja nie działa tak jak zwykłe ->paginate() na obiekcie (taka fake paginacje bez limit). Ogólnie łącze te tabele i potem wyświetlam rekordy z tych tabel wedlug created_by. Jak mogę za pomocą sqla lub orm zrobić aby paginacja działała w normalny sposób i było to optymalne? Dodam, ze union próbowałem ale problem z różnicą kolumn. Prosze o pomoc.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw dopełnij do takiej samej liczby kolumn i dodaj odrazu w sql typ:
Potem zrób union i paginate:
Jeszcze tylko sortowanie po złączenniu (między union, a paginate) oraz sprawdzenie czy moje rozwiązanie pisane z palca nie ma błędów i masz gotowe rozwiązanie ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 19:36 |