Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][vBulletin]Data postu - problem z sortowaniem, ewentualnie konwersją
Forum PHP.pl > Forum > Przedszkole
Matimor
Witajcie
Robię skrypt na stronę Ostatni Post na forum, problem polega na tym iż data w bazie forum zapisywana jest w formie: 1265824038, no i teraz problem polega na tym, gdy tworze zapytanie to sortowanie według daty nie jest prawidłowe ponieważ pokazuje mi nie te posty co trzeba, jak z tej daty zrobić normalną datę żeby sortowanie było prawidłowe.

  1. SELECT `threadid`,`title`,`lastpost`,`lastposter` FROM `thread` WHERE `visible`='1' AND `open`='1' AND `forumid`='8' ORDER BY `lastpost` DESC LIMIT 0,5
thek
Ten numerek to timestamp, a więc liczba sekund od 1 stycznie 1970 roku. Im jest wyższa tym post nowszy. Tak więc sortowanie malejąco po tym numerze jest jak najbardziej prawidłowe ! Sortuj po nim malejąco jak wspomniałem, a jedynie podczas wyświetlania konwertuj to do daty zrozumiałej dla człowieka.
Matimor
Ale w tym problem, że mi to źle sortuje, na forum ostatni post to np. Jestem nowy (21 marca), a po sortowaniu pokazuje mi ostatni post z 16 marca i wyżej czyli 17, 18 nie chce iść.
thek
To znaczy, że zapewne masz byka w skrypcie, coś nie tak z sortowaniem. No chyba, że masz to jakoś "dziko" w bazie rozłożone. Bo ta liczba to po prostu inny format zapisu daty i nic więcej. Możliwe, że masz to poszatkowane w jakiś sposób i tak naprawdę ostatnie posty to nie nowe posty, ale choćby aktualizacje starszych.

Zauważ, że Ty wrzucasz do SELECT nie informacje o faktycznie ostatnich postach, ale o ostatnich tematach na danym forum z tabeli tematów. Jeśli więc dzieje się coś nie tak z aktualizacją informacji pomiędzy tabelami postów a tematów to dane te będą nieprawidłowe, nieaktualne. Tutaj prędzej bym szukał przyczyny. Radziłbym napisać zapytanie sprawdzające tabelę postów, czy rzeczywiście dane lastpost w tabeli tematów pokrywa się z wynikami, bo jak sam widzisz, coś nie bardzo tutaj gra. Jako że baza układa wszystko ok na stronie a zapytanie źle wybiera to znaczy, że vBulletin działa prawidłowo, ale zapytanie Twoje ma błąd. I właśnie to tutaj szukałbym przyczyny.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.