2013-08-24 118 views
1

我想知道爲什麼我有一些錯誤,這樣做:如何連接兩個mysql使用while?

$query = "SELECT * FROM servers "; 
     while($rows = mysql_fetch_array(mysql_query($query))) 
    { 
    $database1 = array(); 

$database1['host']  = $rows['db_host']; 
$database1['user']  = $rows['db_user']; 
$database1['password'] = $rows['db_pass']; 
$database1['table'] = $rows['db_user']; 

$con1 = @mysql_connect($database1['host'], $database1['user'], $database1['password']) or die($connect_error); 
if(!$con1) { 
     exit; 
} 


$connect_error = 'Sorry, there are some connection problems.'; 

mysql_select_db($database1['table']) or die($connect_error); 


$info = mysql_fetch_assoc(mysql_query("SELECT COUNT(username) as total FROM authme")); 
echo "No servidor ".$rows['name']." existem um total de ".$info['total']. " contas  registradas, alem disso"; 

    } 

確定。免得解釋:我有兩個型動物的數據庫的,在最前一頁一個,我寫此查詢:

query = "SELECT * FROM servers "; 

我在表服務器一個MySQL connections.So我必須在diferrent mysqls連接獲得MySQL主機,用戶和password.When我得到這些東西,我得爲每一個連接的值,並使用COUNT作爲一個變量,當我做了呼應這個值:

$info = mysql_fetch_assoc(mysql_query("SELECT COUNT(username) as total FROM authme")); 
echo "No servidor ".$rows['name']." existem um total de ".$info['total']. " contas  registradas, alem disso"; 

我希望能跟大家因爲已瞭解我不英語說得很好):謝謝你的關注..

+0

不能與當前的方法 –

+0

兩種不同的MySQL數據庫同一MySQL數據庫服務器上或在不同的數據庫服務器? – hakre

回答

1

您應該運行mysql_query($query) 1次不在循環中。 您的代碼會在每個循環中運行mysql_query

while($rows = mysql_fetch_array(mysql_query($query))) 
          //HERE^ 

待辦事項:

從刪除

<?php 
$query = "SELECT * FROM servers"; 
$result = mysql_query($query); 

while($rows = mysql_fetch_array($result)){ 

    // do more stuff 
+0

對不起...喜歡如何?我didnt非常undestand .. – user2712783

+0

哦現在我undestand ..現在工作好..謝謝曼 – user2712783

0

在你的腳本看還是有一些改進,你可以做。對於初學者來說,你的變量聲明($ connect_error)被創建爲AFTER它被調用。

雖然您應該採用mysqli PHP API而不是您使用的MySQL函數已被標記爲已棄用。

# Where query results are stored 
$database1 = array(); 

# Error Message 
$connect_error = 'Sorry, there are some connection problems.'; 

# mySQL Loop No.1 
while($rows = mysql_fetch_array(mysql_query("SELECT (name,db_host,db_user,db_pass) FROM servers"))) { 
    foreach($rows as $key=>value) { 
     $database1[$key] = $value; 
    } 
} 

# Since this is a duplicate of existing row duplicate 
$database1['table'] = $rows['db_user']; 

# Connect to new db using details 
$con1 = @mysql_connect($database1['host'], $database1['user'], $database1['password']) or die($connect_error); 
if(!$con1) { 
     exit; 
} 

# Select 2nd DB 
mysql_select_db($database1['table']) or die($connect_error); 

# mySQL Loop No.2 
while($info = mysql_fetch_assoc(mysql_query("SELECT COUNT(username) as total FROM authme"))) { 
    $total = $info['total']; 
} 

#Lastly with all data gotten you can show string 
echo "No servidor ".$database1['name']." existem um total de ".$total. " contas registradas, alem disso"; 

請進一步閱讀,請參閱:

http://www.php.net/manual/en/mysqli.quickstart.dual-interface.php