L3mon | 2021-02-17 10:26:05 UTC | #1
Witam mam problem gdyż chciałem zrobić top10 łącznego czasu.
Napisałem takie coś:
$czaszapisany=$udata[‘connectiontime’];
$czasaktualny=$client[‘connectionconnected_time’];
$czasall=$czasaktualny+$czaszapisany;
i zliczany czas ewidentnie jest za duży jakby się mnożył czy coś.
Umiałby by ktoś to naprawić ? .
Dziękuję za wszelką pomoc
SystemZ | 2017-06-05 12:50:29 UTC | #2
Czasu ale czego?
Podaj trochę więcej informacji co chcesz osiągnąć i z czego korzystasz.
L3mon | 2017-06-05 13:06:58 UTC | #3
chce zliczac czas na serwerze ts3 Całkowie długości połączeń
$czaszapisany=$udata[‘connectiontime’]; jest to czas ktory ma byc zapisywany w bazie danych
$czasaktualny=$client[‘connectionconnected_time’]; to jest aktualna długość połączenia
tak wygląda aktualnie kod
http://www.wklej.org/id/3189259/
Nieznajomy11 | 2017-06-05 13:15:08 UTC | #4
Wydaje mi się, że problem polega na tym:
wchodzę na serwer, siedzę 10 minut | 10 minut zliczone
wychodzę
wchodzę znowu na 33 minuty | 10+33
liczy dalej, czekałem jeszcze 7 minut.. | 10+33+40
L3mon | 2017-06-05 13:28:12 UTC | #5
hmm wydaje mi sie że za każdym razem jak odświeża ranking to dodaje kolejny raz zliczony czas i tak to się mnożny nie da rady jakoś dodawać czasu już do tabeli bez wyciągania jej do php ?
Nieznajomy11 | 2017-06-05 13:51:35 UTC | #6
dodawaj czas przy wyjściu z serwera, najłatwiej będzie
L3mon | 2017-06-05 13:59:39 UTC | #7
a wiesz jak to zapisac ?
jakiego dac ifa ?
Nieznajomy11 | 2017-06-05 14:04:46 UTC | #8
To musi być jakiś event w api z którego korzystasz przy pisaniu bota, nie znam się na nich (średnio lubię tsa) - wiem tylko jak powinno się to zrobić. Wtedy gdy już go masz to po prostu dodajesz do czasu z bazy $client['connection_connected_time']
Pantoflarz | 2017-06-06 09:23:43 UTC | #9
Bez sensu, bo jak będe miał connecta 10 dni, to przez 10 dni system mnie nie widzi? XD
Nie wspomnę o tym co sie stanie jak po takich 10 dniach BOT padnie i wogóle mi tych 10 dni nie zaliczy :D
Co do problemu - nie dodawaj connectionconnectedtime, a po prostu, jeśli dana funkcja jest robiona co 60 sekund, dodawaj 60 sekund, i problem z głowy.
L3mon | 2017-06-06 17:15:31 UTC | #10
Czyli jak to powinienem to zapisać aby co 60 s dodawało do bazy 60 s
Funkcje nastawiłem aby uruchamiała sie co 5 minut
L3mon | 2017-06-06 18:16:59 UTC | #11
Poradziłem juz sobie dzieki za pomoc :slight_smile:
SystemZ | 2017-06-07 00:34:38 UTC | #12
W takim razie warto podzielić się rozwiązaniem z innymi :slight_smile:
L3mon | 2017-06-08 17:47:41 UTC | #13
oczywiście :)
Jeżeli bot wchodzi co 5 minut i długość połączenia jest dłuższa niż 1 to dodaje do bazy 300 jednostek
if($client['connection_connected_time']>1)
{
$all=$u_data['connectiontime']+300;
$zapytanie = "UPDATE top10connectiontimeall SET connectiontime='".$all."' WHERE uid='".$user['client_unique_identifier']."'";
$polaczenie->query($zapytanie);
}
a następnie dziele sobie to tak aby wyszły mi godziny minuty sekundy
$init = $row['connectiontime'];
$hours = floor($init / 3600);
$minutes = floor(($init / 60) % 60);
$seconds = $init % 60;
system | 2021-02-17 10:26:23 UTC | #14
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.