[ styl3r @ 13.01.2014. 18:35 ] @
I pozdrav ljudi, Radim game cron da svakih 5 minuta pokrene fajl i uzme podatke sa svih servera koji su dodani... E sada ja uzmem ip adrese ubacim ih u array znaci to bude ovako: Code: $array = Array ( [0] => ip, [1] => ip.... ); E sada ja izbrojim koliko ima servera ( dodani su pod string $cssserverscountis ) i postavim provjeru: Code: for($i = 0; $i < $cssserverscountis; $i++) { $serverexplodee = explode(":", $array[$i]); $serverIP = $serverexplodee[0]; $serverPort = $serverexplodee[1]; define( 'SQ_SERVER_ADDR', $serverIP ); define( 'SQ_SERVER_PORT', $serverPort ); define( 'SQ_TIMEOUT', 1 ); define( 'SQ_ENGINE', SourceQuery :: SOURCE ); $Timer = MicroTime( true ); $Query = new SourceQuery( ); $Info = Array( ); $Rules = Array( ); $Players = Array( ); try { $Query->Connect( SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE ); $Info = $Query->GetInfo( ); $Players = $Query->GetPlayers( ); $Rules = $Query->GetRules( ); } catch( Exception $e ) { // - ako je offline uzimace podatke koji su zabiljezeni kada je bio online ( i ako je off vise od 15 dana ukinuce se to trebam dodati ali prvo ovo uraditi) $ipserveracj = $ipservera; $servernamecj = $servername; $servermodcj = $servermod; $playerscj = $players; $maxplayerscj = $maxplayers; $botscj = $bots; $mapcj = $map; $infoplayerscj = ""; $arraycj = $infoplayerscj; } $Query->Disconnect( ); $Timer = Number_Format( MicroTime( true ) - $Timer, 4, '.', '' ); if($Info["ModDir"] != 'cstrike'){ // - Ako bude bud neki pa ucita neki drugi server koji nije cs:s $ipserveracj = $ipservera; $servernamecj = $servername; $servermodcj = $servermod; $playerscj = $players; $maxplayerscj = $maxplayers; $botscj = $bots; $mapcj = $map; $infoplayerscj = ""; $arraycj = $infoplayerscj; }else{ // - ako je sve u redu onda uzme podatke sa servera $ipserveracj = $ipservera; $servernamecj = mysql_real_escape_string(htmlentities($Info["HostName"])); $servermodcj = $servermod; $playerscj = $Info["Players"]; $maxplayerscj = $Info["MaxPlayers"]; $botscj = $Info["Bots"]; $mapcj = $Info["Map"]; $infoplayerscj = mysql_real_escape_string(json_encode($Players)); $arraycj = $infoplayerscj; } echo $ipserveracj . "<br />"; echo $servernamecj . "<br />"; echo $servermodcj . "<br />"; echo $playerscj . "<br />"; echo $maxplayerscj . "<br />"; echo $botscj . "<br />"; echo $mapcj . "<br />"; print_r($arraycj); } E i sada umjesto da foreach ide redom i uzme svaki ip on postavi uvijek isti server i sada npr ako je trebalo da uzme podatke sa 8 istih servera on ce postaviti 8 puta isti server i ne razumijem u cemu je greska.... Evo puni kod: Code: <?php mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db("spg") or die(mysql_error()); $cssserverscount = mysql_query("SELECT COUNT(id) AS numbers FROM igrice WHERE game_id = '2'") or die(mysql_error()); $cssserversrows = mysql_fetch_assoc($cssserverscount); $cssserverscountis = $cssserversrows['numbers']; $cssservers = mysql_query("SELECT * FROM igrice WHERE game_id = '2'") or die(mysql_error()); while($servers = mysql_fetch_assoc($cssservers)){ $ipservera[] = $servers['ip']; $servermod = $servers['servermod']; $servername = $servers['imeservera']; $maxplayers = $servers['maxplayers']; $bots = "0"; $players = "0"; $map = $servers['servermap']; } $array = $ipservera; for($i = 0; $i < $cssserverscountis; $i++) { $serverexplodee = explode(":", $array[$i]); $serverIP = $serverexplodee[0]; $serverPort = $serverexplodee[1]; define( 'SQ_SERVER_ADDR', $serverIP ); define( 'SQ_SERVER_PORT', $serverPort ); define( 'SQ_TIMEOUT', 1 ); define( 'SQ_ENGINE', SourceQuery :: SOURCE ); $Timer = MicroTime( true ); $Query = new SourceQuery( ); $Info = Array( ); $Rules = Array( ); $Players = Array( ); try { $Query->Connect( SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE ); $Info = $Query->GetInfo( ); $Players = $Query->GetPlayers( ); $Rules = $Query->GetRules( ); } catch( Exception $e ) { // - ako je offline uzimace podatke koji su zabiljezeni kada je bio online ( i ako je off vise od 15 dana ukinuce se to trebam dodati ali prvo ovo uraditi) $ipserveracj = $ipservera; $servernamecj = $servername; $servermodcj = $servermod; $playerscj = $players; $maxplayerscj = $maxplayers; $botscj = $bots; $mapcj = $map; $infoplayerscj = ""; $arraycj = $infoplayerscj; } $Query->Disconnect( ); $Timer = Number_Format( MicroTime( true ) - $Timer, 4, '.', '' ); if($Info["ModDir"] != 'cstrike'){ // - Ako bude bud neki pa ucita neki drugi server koji nije cs:s $ipserveracj = $ipservera; $servernamecj = $servername; $servermodcj = $servermod; $playerscj = $players; $maxplayerscj = $maxplayers; $botscj = $bots; $mapcj = $map; $infoplayerscj = ""; $arraycj = $infoplayerscj; }else{ // - ako je sve u redu onda uzme podatke sa servera $ipserveracj = $ipservera; $servernamecj = mysql_real_escape_string(htmlentities($Info["HostName"])); $servermodcj = $servermod; $playerscj = $Info["Players"]; $maxplayerscj = $Info["MaxPlayers"]; $botscj = $Info["Bots"]; $mapcj = $Info["Map"]; $infoplayerscj = mysql_real_escape_string(json_encode($Players)); $arraycj = $infoplayerscj; } echo $ipserveracj . "<br />"; echo $servernamecj . "<br />"; echo $servermodcj . "<br />"; echo $playerscj . "<br />"; echo $maxplayerscj . "<br />"; echo $botscj . "<br />"; echo $mapcj . "<br />"; print_r($arraycj); } ?> Hvala puno svakome ko pomogne. |