![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Grajewo Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Skonstruowałem zapytanie wyświetlające wszystkie tematy danego forum (id, temat, id autora, nazwę autora, liczbę postów, datę osatniej modyfikacji):
Chciałbym do tego dodać dane ostatniego postu [p.id] (tego z MAX(p.time)) i dane jego autora [p.user_id][u.name], ale pogubiłem się. Wydaje mi się, że z WHERE odpadnie u.id = p.user_id, ale co dalej? Da się wydobyć te dane razem z tym zapytaniem? Jeśli tak, to będę wdzięczny za wskazówki. Ten post edytował onlyX 3.10.2009, 15:32:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A czemu zamiast szukania po dacie ie wyciągasz posta z najwyższym id w danym forum/podforum? Zapewne masz w tabeli postów autoincrement na id. Zauważ, że najwyższe id w danym temacie/podforum/forum to zawsze najnowszy post i z automatycznie najświeższą datą. Tymczasem operacje na datach potrafią w niektórych cms lub forach powodować błędy. Sam swego czasu musiałem przerabiać skrypty php-fusion właśnie pod tym kątem z jakim Ty masz problem, czyli wyświetlanie danych użytkownika, którego post jest najświeższy. Domyślnie bowiem przechowywana jest tylko data ostatniego posta, a nie jego id, co jest głupotą. W sytuacji bowiem, gdy zapis do tabeli forum jest o ułamek sekundy późniejszy niż do tabeli postów nie można zidentyfikować jaki post jest ostatni i kto go napisał, bo nie istnieje post z tym samym timestamp (różne w obu tabelach). Tu najlepsze jest przechowywanie id posta oraz po nim wyszukiwanie i nie używanie timestamp do tego zadania.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 07:41 |