Na swoim forum z silnikiem phpbb by przemo, wgrałem modyfikację, która wyświetla listę używanych systemów, oraz przeglądarek przez użytkownika.
Pokażę zaraz kod z pliku php, odpowiedzialny za to. Dzisiaj dodałem taką rzecz, żeby sortowało wpisy wg daty użycia przeglądarki rosnąco i tu pojawia sie problem, bo niekiedy nie sortuje prawidłowo, na przykład na samej górze jest przeglądarka i system, który był użyty wcześniej, niż te niżej. Oto kod:j:
$sql = "SELECT user_agent, COUNT(*) as how_much FROM " . POSTS_TABLE . " WHERE poster_id = $user_id GROUP BY user_agent ORDER BY post_id DESC LIMIT 10"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Couldn\'t obtain user agents list', '', __LINE__, __FILE__, $sql); } $marker = $total_usage = 0; while ( $row = $db->sql_fetchrow($result) ) { $total_usage += $row['how_much']; $ico_sys_db[$marker] = $user_agent[0]; $ico_brow_db[$marker] = $user_agent[1]; $ua_db[$marker] = $user_agent[2]; $marker++; } { 'L_USER_AGENTS' => $lang['uas_title_mod'], 'L_BROWSERS' => $lang['uas_browsers_mod'], 'L_USAGE' => $lang['uas_usage_mod'] )); foreach( $ua_db as $marker => $user_agent ) { $ico_sys = '<img src="' . $images['images'] . '/user_agent/' . $ico_sys_db[$marker] . '" alt="" title="' . $user_agent . '" border="0">'; $ico_brow = '<img src="' . $images['images'] . '/user_agent/' . $ico_brow_db[$marker] . '" alt="" title="' . $user_agent . '" border="0">'; 'UAS_ICO_SYSTEM' => $ico_sys, 'UAS_ICO_BROWSER' => $ico_brow, 'UAS_USER_AGENT' => $user_agent, 'UAS_USAGE' => $usage )); } }
To, co dodałem dziś:
ORDER BY post_id DESC LIMIT 10";
W order by wstawiłem sortowanie wg. kolumny post_id, ale jeśli dam wg. post_time, nie ma różnicy, dalej jest tak samo. Modyfikacja nie jest moja. W tabeli z postami jest dodana kolumna user_agent i przy każdym poście jest dopisywana informacja o przeglądarce i systemie. Grupuje te same informacje, następnie przez order wyświetla w odpowiedniej kolejności i tak w 90% jest, ale zdarzają się takie kwiatki.
Pomoże ktoś?