Matimor
21.03.2010, 21:37:15
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.
SELECT `threadid`,`title`,`lastpost`,`lastposter` FROM `thread` WHERE `visible`='1' AND `open`='1' AND `forumid`='8' ORDER BY `lastpost` DESC LIMIT 0,5
thek
21.03.2010, 21:41:24
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
21.03.2010, 21:47:07
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
21.03.2010, 22:59:01
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.