Witam posiadam plik który ma za zadanie raz na godzine sprawdzić aktualnie grających graczy na serwerze i zapisać je do bazy niestety nie wiem dlaczego plik zapisuje po kilka razy te dane oto mój plik
/ kasowanie starszych rekordów niż miesiąc statystyki_serwerow
$wynik= mysql_query("SELECT * FROM statystyki_serwerow");
// przez pierwsze 3 dni miesiąca nie sprawdzane i nie usuwane
if($data_s[2] < "03") {
// sprawdzanie miesiąca
// jeśli jest styczeń
if($data_s[1] == "01") {
$data_s[0]--;
$data_s[1] = "12";
} else {
$data_s[1] = $data_s[1] - "1"; // minus miesiac
if($data_s[1] < "10") {
$data_s[1] = "0" .$data_s[1];
} else {
$data_s[1] = $data_s[1];
}
}
$data_star = $data_s[0]."-".$data_s[1]."-".$data_s[2]; // minus miesiąc
// jeśli data dodania rekordu jest starsza niż data star
if($r3['data'] < $data_star) {
$zapytanie = "DELETE FROM statystyki_serwerow WHERE data='".$data_star."'";
}
}
}
/* POZYCJE */
$ranking = "0";
$sprawdzan_serwer_off = "0";
$dzisiaj = date('Y-m-d H:i:s'); // dzisiaj $czas = date('H:i:s'); // dzisiaj $godzina = date('H'); // dzisiaj
// Sprawdzanie serwerów
$wynik= mysql_query("SELECT * FROM server ORDER BY id DESC");
if($wiersz['pokaz'] == "0") {
} else {
$hlsocket = new HLSocket($ip[0], $ip[1]);
$info=$hlsocket->details();
$gq = new GameQ();
$servers['server'] = array('cs', $ip[0
], $ip[1
]); $gq->addServers($servers);
$gq->setOption('timeout');
$gq->setFilter('normalise');
$row_staty = $gq->requestData();
$adres_geo = "http://api.ipinfodb.com/v3/ip-city/?key=ab50144cd1c4da6ec2d25092e88ad420c86fd8d7946bd4ef7f001e4d6da8ce38&ip=".$ip[0]."&format=json";
$api_geo = json_decode($api_geo);
$skrot_panstwa_api_geo = $api_geo->countryCode;
$fullname_panstwa_api_geo = $api_geo->countryName;
if($row_staty['server']['protocol'] == "47") {
$protocol = "Dual";
} else if($row_staty['server']['protocol'] == "48") {
$protocol = "New";
} else if($row_staty['server']['protocol'] == "17") {
$protocol = "Old";
}
$graczy = $info['players'];
$graczymax = $info['max'];
$mapa = $info['map'];
$ip_staty = $wiersz['ip'];
if($info['hostname'] == "") {
$from = "System";
$to_id = $wiersz['added'];
$temat = "Błąd serwera";
$time = date('Y-m-d H:i:s');
// tymczasowe deaktywowanie, jeśli nie jest deaktywowany a jest wyłączony i wysyłanie wiadomości
if($wiersz['pokaz'] == "1") {
if(!$wiersz['added'] == "") {
$text = 'Serwer '.$wiersz['ip'].' podczas ostatniego sprawdzania napotkał błąd "Serwer nie jest aktywny" i został tymczasowo deaktywowany';
mysql_query( "INSERT INTO `wiadomosci` VALUES( null, '{$form}', '{$to_id}', '{$temat}', '{$text}', '{$time}', '0' )" ); }
$zapytanie = "UPDATE server SET pokaz='2', ilosc_spr='1' WHERE ip='".$wiersz['ip']."'";
} else {
// jeśli jest deaktywowany - zwiększanie ilości spr bez wiadomości
$ilosc_sprawdzan = $wiersz['ilosc_spr'];
$ilosc_sprawdzan++;
$zapytanie = "UPDATE server SET ilosc_spr='{$ilosc_sprawdzan}' WHERE ip='".$wiersz['ip']."'";
// deaktywowanie na zawsze
if($wiersz['ilosc_spr'] == "4") {
$text = 'Serwer '.$wiersz['ip'].' został deaktywowany na zawsze z powodu długiego czasu wyłączenia';
// zmiana pokaz w serweraz z 2 na 0
$zapytanie = "UPDATE server SET pokaz='0' WHERE ip='".$wiersz['ip']."'";
if(!$wiersz['added'] == "") {
mysql_query( "INSERT INTO `wiadomosci` VALUES( null, '{$form}', '{$to_id}', '{$temat}', '{$text}', '{$time}', '0' )" ); }
}
}
} else {
if($wiersz['pokaz'] == "2") {
$from = "System";
$to_id = $wiersz['added'];
$temat = "Błąd serwera";
$time = date('Y-m-d H:i:s');
if(!$wiersz['added'] == "") {
$text = 'Serwer '.$wiersz['ip'].' został przywrócony';
mysql_query( "INSERT INTO `wiadomosci` VALUES( null, '{$form}', '{$to_id}', '{$temat}', '{$text}', '{$time}', '0' )" ); }
$zapytanie = "UPDATE server SET pokaz='1', ilosc_spr='0' WHERE ip='".$wiersz['ip']."'";
}
}
// dodawanie rekordu
mysql_query( "INSERT INTO `statystyki_serwerow` VALUES( '{$data}', '{$cala_data}', '{$godzina}', '{$graczy}', '{$graczymax}', '{$mapa}', '{$ranking}', '{$ip_staty}')" );
}
}
?>