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:
$array = Array ( [0] => ip, [1] => ip.... );
E sada ja izbrojim koliko ima servera ( dodani su pod string $cssserverscountis ) i postavim provjeru:
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:
<?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.