2017-11-19 8 views
1

에서 foreach 문으로 변수를 정의하는 것은 여기에 내가 SQL 데이터베이스에 IP의이 내 코드PHP 배열

<?php 

$serverArray = []; 
$con=mysqli_connect("--","--","--","--"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$sql="SELECT ipaddress FROM gmodservers"; 
$result=mysqli_query($con,$sql); 

while ($row=mysqli_fetch_array($result)) { 
    print_r($row); 
    array_push($serverArray,$row); 
    print_r($serverArray); 
} 


// Free result set 
mysqli_free_result($result); 

mysqli_close($con); 

///ServerPull/// 

require __DIR__ . '/../SourceQuery/bootstrap.php'; 

use xPaw\SourceQuery\SourceQuery; 

// For the sake of this example 
Header('Content-Type: text/plain'); 
Header('X-Content-Type-Options: nosniff'); 
// Edit this -> 
define('SQ_SERVER_PORT', 27015); 
define('SQ_TIMEOUT',  1); 
define('SQ_ENGINE',  SourceQuery::SOURCE); 
foreach ($serverArray as $value) { 
define('SQ_SERVER_ADDR', $value); 
// Edit this <- 

$Query = new SourceQuery(); 

try 
{ 
    $Query->Connect(SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE); 

    print_r($Query->GetInfo()); 
    print_r($Query->GetPlayers()); 
    print_r($Query->GetRules()); 
} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
} 
} 

$Query->Disconnect(); 

입니다. 나는 IP를 배열로 옮긴다. 그런 다음 아래쪽에있는 함수를 사용하여 배열의 모든 IP 주소에 대한 모든 정보를 인쇄하려고합니다. 당신은 서버 주소 사용 변수 있도록 constant 그것은 할 수없는 재 선언을 사용하는 것처럼

Could not create socket: php_network_getaddresses: getaddrinfo failed: No such host is known.
Notice: Constant SQ_SERVER_ADDR already defined in G:\XAMPP\htdocs\PHP-Source-Query-master\Examples\list.php on line 40

답변

0

: 그러나, 나는이 오류가 발생합니다. 당신이 ipaddress

while ($row=mysqli_fetch_array($result)) { 
    print_r($row); 
    array_push($serverArray,$row['ipaddress']); 
    print_r($serverArray); 
} 
+0

감사를 추가 할 필요가 데이터베이스 결과의 루프는 배열에 전체 행을 추가하는 동안

편집

foreach ($serverArray as $value) { //define('SQ_SERVER_ADDR', $value); $server_address = $value; // Edit this <- $Query = new SourceQuery(); try { $Query->Connect($server_address, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE); print_r($Query->GetInfo()); print_r($Query->GetPlayers()); print_r($Query->GetRules()); } catch(Exception $e) { echo $e->getMessage(); } } 

아래로 foreach 루프를 변경! 나는 이것을 시도했다. 그러나 나는이 오류를 가지고있다 : 소켓을 만들 수 없다 : php_network_getaddresses : getaddrinfo failed : 그런 호스트는 알려져 있지 않다. – Leyer

+0

호스트가 유효한지 확인하십시오. –

+0

배열의 주소가 유효합니다. 내가 정의했을 때 작동했습니다 ('SQ_SERVER_ADDR', '208.103.169.12'); 그러나, 그것은 단지 하나와 함께 일했고 ofc를 하드 코드했다. – Leyer