Witam,

Mam tabelę przetrzymująca informacje co kto lubi. Tabela przechowuje co i jaki użytkownik lubi.

Zapytanie obecnie do bazy nie wymaga tablicowania wyników a wszelkie potrzebne informacje wyciągam jednym resultem łącząc LEFT JOINem do tabeli lubie inne tabele wyciągając takie dane jak nazwę komentującego, nazwę właściciela podmiotu, nazwę zdjęcia czy nazwę newsa.

Może dla podpowiedzi dam strukturę tabeli lubie:

Cytat
lubie_id - id wiadomo
lubie_typ - jeden z typów wpisu F (film) , N (news), U (profil), P (fotka) etc
lubie_co - id podmiotu lubionego czyli zarówno id newsa jak i id tematu na forum etc
lubie_kto - kto polubił jakąś rzecz
lubie_czyje - kto jest właścicielem podmiotu (czyli kto dodał na stronę zdjęcie, film czy coś tam innego)
i inne mniej znaczące


oraz result
  1. SELECT l.*, p.photo_title, p.photo_description, p.photo_thumb1, p.album_id, ne.news_subject, g.game_subject, i.info_subject, u.user_name, u.user_id, u.user_sex,u.user_status, u.user_color, u.user_avatar,u2.user_avatar AS avek2, u2.user_name AS profil_name FROM ".$db_prefix."lubie l LEFT JOIN ".$db_prefix."users u ON l.lubie_czyje=u.user_id LEFT JOIN ".$db_prefix."users u2 ON l.lubie_kto = u2.user_id LEFT JOIN ".$db_prefix."photos p ON p.photo_id=l.lubie_co LEFT JOIN ".$db_prefix."game g ON g.game_id=l.lubie_co LEFT JOIN ".$db_prefix."news ne ON ne.news_id=n.notify_co WHERE $ustawienia ORDER BY lubie_id DESC LIMIT 50

Efekt jaki osiągam teraz tradycyjnym zapytaniem i z switch (po typie co lubimy żeby w zależności od tego wyświetlić wynik w postaci miniaturki lubianego zdjęcia czy dając link do lubianego profilu) już w pętli while to np:

user xxx lubi zdjęcie usera 111
user yyy lubi zdjęcie usera 111
user sss lubi zdjęcie usera 111
user zzz lubi film usera 222
user xxx lubi profil usera 333

Czytałem troszkę o group_concat ale to chyba nie rozwiąże mojego problemu (przynajmniej w znanym mi sposobem użycia) bo efekt jaki chciałbym osiągnąć to wyjęte z bazy rekordy zbić w jeden gdzie warunek to id podmiotu ORAZ jego typ są takie same a data polubienia będzie odpowiadała dacie ostatniej reakcji z danym podmiotem) bo samo id nic nie da jeśli np id zdjęcia które dodał user 111 oraz id filmu który dodał inny user będą takie same (a mogą bo to różne tabele) bo wtedy zamiast wyniku:

xxx, yyy, sss lubią zdjęcie usera 111
user zzz lubi film usera 222

Otrzymałbym
xxx, yyy, sss, zzz lubią zdjęcie usera 111


Przykłądem dobrze funkcjonującego tego co chce osiągnąć jest też facebookowe

XXX, YYY, ZZZ lubią Twój link
1 godzina temu (data polubienia przez ostatniego z tych trzech userów)