Witam,
Odnosze sie do bledu ktory opisal uzytkownik w tym temacie:
http://www.phpbb2.pl/forum/viewtopic.php?t=21582
Nikt tam juz niezagladnie bo moj post zostanie polaczony jeden w drugi a warto go przeczytac.
Mianowicie znalazlem rozwiazanie bledu, ktory dlugo mnie meczyl. Wszystko przez lenistwo Dabroza... doslownie.
Szukajac buga, zaciekawila mnie funkcja color_calculate_all() wiec spojrzalem i co widze:
#
# Funkcja liczy kolory wszystkich userów - lenistwo...
#
Taaa, lenistwo Dabroza przysporzylo mi problemow przez ponad rok (bo nigdy mi sie niechcialo tego debugowac, co niebylo takie proste).
No ale do rzeczy, na czym ten blad (lenistwo) polegalo:
$sql='SELECT user_id FROM '.USERS_TABLE.'';
Funkcja leciala poprzez WSZYSTKICH userow na forum, ze usunac kilku z grupy. Poprostu amba, jesli ktos ma 100 userow na forum to nic niezauwazy, ale u nas jest prawie 300000 wiec przy usunieciu jednej osoby z grupy funkcja 'liczyla' range na nowo dla 300000 userow zamiast jednego... taa i dziwic sie ze sie zapetlalo/mulilo.
Prosty fix, niewiem czemu Dabroz odrazu tego niezrobil, to kilka znakow dopisanych:
groupcp.php
znajdz
color_calculate_all()
zamien na
color_calculate_all($sql_in)
includes/functions_color_rank.php
znajdz
color_calculate_all()
zamien na
color_calculate_all($userid)
znajdz
'SELECT user_id FROM '.USERS_TABLE
zamien na
SELECT user_id FROM '.USERS_TABLE.' WHERE user_id IN ('.$userid.')'
Gotowe, teraz oblicza kilku usunietych userow a nie wszystkich.
Pozdro
Uwagi moderatora alojzy_gabka1 (dodane 09 Kwi 2008, 23:41):
Ostatnio edytowany przez alojzy_gabka1, 09 Kwi 2008, 23:41, edytowano w sumie 1 raz