Problem ze zliczaniem czasu

Pytania i problemy
php
L3mon
L3mon

Witam mam problem gdyż chciałem zrobić top10 łącznego czasu. Napisałem takie coś: $czaszapisany=$u_data['connectiontime']; $czasaktualny=$client['connection_connected_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
SystemZ Admin lvlup.pro

Czasu ale czego? Podaj trochę więcej informacji co chcesz osiągnąć i z czego korzystasz.

L3mon
L3mon

chce zliczac czas na serwerze ts3 Całkowie długości połączeń

$czaszapisany=$u_data['connectiontime']; jest to czas ktory ma byc zapisywany w bazie danych $czasaktualny=$client['connection_connected_time']; to jest aktualna długość połączenia

tak wygląda aktualnie kod http://www.wklej.org/id/3189259/

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

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
L3mon

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
Nieznajomy11 Moderator forum.lvlup.pro

dodawaj czas przy wyjściu z serwera, najłatwiej będzie

L3mon
L3mon

a wiesz jak to zapisac ? jakiego dac ifa ?

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

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
Pantoflarz

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 connection_connected_time, a po prostu, jeśli dana funkcja jest robiona co 60 sekund, dodawaj 60 sekund, i problem z głowy.

L3mon
L3mon

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
L3mon

Poradziłem juz sobie dzieki za pomoc :slight_smile:

SystemZ
SystemZ Admin lvlup.pro

W takim razie warto podzielić się rozwiązaniem z innymi :slight_smile:

L3mon
L3mon

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
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.