Andrzej Braszka 0 Zgłoś post Napisano Styczeń 21, 2012 Nie znam masz racje ,ale także nie mam kasy żeby kogoś zatrudnić.Dostałem e-mail ,że ten pik właśnie robi tyle zapytań <meta http-equiv="Content-type" content="text/html; charset=UTF-8"><?php set_time_limit(0); require_once("inc/dbc.php"); $user = mysql_query("select * from users"); $ileuser = mysql_num_rows($user); for ($i=0;$i<$ileuser;$i++) { $user = mysql_query("select * from users"); $nick = mysql_result($user,$i,"login"); $hp = mysql_result($user,$i,"HP"); $stamina = mysql_result($user,$i,"energia"); //hp $maxhp = 100; if ($hp < $maxhp) { $newhp = $hp + 20; if ($newhp > $maxhp){ $newhp = $maxhp; } mysql_query("UPDATE users SET HP='$newhp' WHERE login='$nick'") or die(mysql_error()); } //energia $maxstamina = 50; if ($stamina < $maxstamina) { $newstamina = $stamina + 35; if ($newstamina > $maxstamina){ $newstamina = $maxstamina; } mysql_query("UPDATE users SET energia='$newstamina' WHERE login='$nick'") or die(mysql_error()); } flush(); } function get_percent($percent,$number) { $per = 100 / $percent; return $number / $per; } ?> Może ktoś powie co tu źle jest ? Udostępnij ten post Link to postu Udostępnij na innych stronach
pajter 9 Zgłoś post Napisano Styczeń 21, 2012 Może ktoś powie co tu źle jest ? Po co wykonujesz 2 razy "select * from users");" ? Po co wykonujesz 2 razy UPDATE? poza tym: if ($hp < $maxhp) { $newhp = $hp + 20; if ($newhp > $maxhp){ $newhp = $maxhp; } Np masz 2 userow: user1 90hp user2 120hp po pierwszym wykonaniu crona Ci userzy beda mieli: user1 110hp user2 100hp po drugim wykonaniu: user1 100hp user2 100hp Nie mozesz po prostu wykonac "UPDATE users SET hp=100 WHERE hp>100" i "UPDATE users SET hp=hp+10 WHERE hp<100" ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 22, 2012 Weź dwie kartki i długopis Rozpisz na jednej jak działa ten plik po kolei co z czym robi Zastanów się 5-10 minut co robi to zadanie Na drugiej kartce napisz to samo ale z pominięciem zbędnych pierdół i jak to samo można zrobić w prostszy sposób Następnie zrób plik testowy czy działa Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 22, 2012 Wszystko co robisz tym skryptem, MySQL może zrobić sam, więc obciążenie procesora będzie albo 0 albo przez ułamki sekund większe (jak przy normalnym zapytaniu). Udostępnij ten post Link to postu Udostępnij na innych stronach
Andrzej Braszka 0 Zgłoś post Napisano Styczeń 22, 2012 Wszystko co robisz tym skryptem, MySQL może zrobić sam, więc obciążenie procesora będzie albo 0 albo przez ułamki sekund większe (jak przy normalnym zapytaniu). co 7 minut miałbym sam nawalać crona przecież to jest nie realne Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Styczeń 22, 2012 Wnioskuję o zamknięcie tematu. Andrzeju, skorzystaj z subforum "giełda". Udostępnij ten post Link to postu Udostępnij na innych stronach
kaszub1136 109 Zgłoś post Napisano Styczeń 22, 2012 Andrzej nie poradzisz sobie z optymalizacją, uświadomiłeś nam to w tym temacie. Tak jak Sponsi radzi skorzystaj z działu giełda i zleć to komuś ogarniętemu. Udostępnij ten post Link to postu Udostępnij na innych stronach
Miłosz 2311 Zgłoś post Napisano Styczeń 22, 2012 Trochę teorii z SQLa też się przyda. Zamykamy. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 24, 2012 Reakcja na mój post wyjaśniła nam już dokładnie wszystko, jak powiedzieli koledzy wyżej. Daj to komuś. Udostępnij ten post Link to postu Udostępnij na innych stronach