Changeset 6 for scripts/online.php
- Timestamp:
- Jun 4, 2008, 9:01:09 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
scripts/online.php
r5 r6 3 3 require ('../includes/config.php'); 4 4 5 mysql_connect($db_config['host'], $db_config['user'], $db_config['pass']);6 mysql_select_db($db_config['name']);5 $Database = new mysqli($db_config['host'], $db_config['user'], $db_config['pass']); 6 $Database->select_db($db_config['name']); 7 7 8 8 function CheckPortStatus($Ip, $Port) … … 12 12 { 13 13 fclose($Socket); 14 return( true);14 return(1); 15 15 } else 16 16 { 17 return( false);17 return(0); 18 18 } 19 19 } 20 20 21 $TextState = array('Offline', 'Online'); 22 21 23 echo("Kontroluji stav serveru...<br>\n"); 24 $PlayersCount = 0; 22 25 $OnlineCount = 0; 23 26 $OfflineCount = 0; 24 $Servers = mysql_query("SELECT `id`,`ip`,`port`,`name` FROM `servers`");25 while($Server = mysql_fetch_array($Servers))27 $Servers = $Database->query("SELECT `id`,`ip`,`port`,`name` FROM `servers`"); 28 while($Server = $Servers->fetch_array()) 26 29 { 27 30 echo($Server['name'].' - '); 28 if(CheckPortStatus($Server['ip'], $Server['port'])) 29 { 30 mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1, `online` = `online` + 1 WHERE `id`=".$Server['id']); 31 echo('Online'); 32 $OnlineCount++; 33 } else 34 { 35 mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1 WHERE `id` =".$Server['id']); 36 echo('Offline'); 37 $OfflineCount++; 38 } 39 echo("<br>\n"); 31 $OnlineState = CheckPortStatus($Server['ip'], $Server['port']); 32 $OnlineCount += $OnlineState; 33 $OfflineCount += 1 - $OnlineState; 34 // Insert new online state 35 $Database->query("INSERT INTO `servers_online` (`server` ,`time` ,`state` ,`players_count`) VALUES (".$Server['id'].", NOW() , ".$OnlineState.", ".$PlayersCount.")"); 36 37 // Delete old records 38 $Database->query("DELETE FROM `servers_online` WHERE `server` = ".$Server['id']." AND time < DATE_SUB(NOW(), INTERVAL 1 DAY)"); 39 40 // Calculate cached percentage online state 41 $DbResult = $Database->query("SELECT COUNT(*) as `count`, SUM(`state`) as `online` FROM `servers_online` WHERE `server` = ".$Server['id']); 42 $DbRow = $DbResult->fetch_array(); 43 $Database->query("UPDATE `servers` SET `online` = ".round($DbRow['online'] / $DbRow['count'] * 100, 2)." WHERE `id` = ".$Server['id']); 44 $DbResult->free(); 45 echo($TextState[$OnlineState]."<br>\n"); 46 flush(); 40 47 } 41 mysql_free_result($Servers);48 $Servers->free(); 42 49 43 50 echo('Total: '.($OnlineCount + $OfflineCount).', Online: '.$OnlineCount.', Offline: '.$OfflineCount."<br>\n");
Note:
See TracChangeset
for help on using the changeset viewer.