2013-04-11 158 views
1

我目前位於一個數據庫中,for eg: user。我正在從該數據庫中檢索數據。但我需要從另一個數據庫,如:從其他數據庫中獲取數據

mysqli_select_db($link, "first"); 
$q1="select * from user"; 
$s1=mysqli_query($link,$q); 
while($row=mysqli_fetch_assoc($s1)) 
{ 
mysqli_select_db($link, "second"); 
$q2="select * from ".$row['name']; 
$s2=mysqli_query($link,$q2); 
echo mysql_num_rows($s2); 
} 

但顯示錯誤:undefined index name。我認爲這是因爲數據庫的改變和查詢。

我想不出另一種方式來做到這一點。你能說另一種方式來實現這一點嗎?

謝謝!

+0

該錯誤意味着在用戶表中沒有名爲'name'的列。 – Barmar 2013-04-11 08:46:01

+0

@Barmar它確實存在於'first'數據庫的'user'表中。 – 2013-04-11 08:47:17

+0

'var_dump($ row)'顯示什麼? – Barmar 2013-04-11 08:47:46

回答

4

定義查詢在$q1但隨後致電mysqli_query()$q這是一個不同的變量,我猜你存儲在一個先前的查詢,這可以解釋未定義指數的通知。

另一個問題是您對兩個不同的數據庫使用相同的$link變量。我建議將第一個存儲在$link_first中,第二個存儲在$link_second中,以使它們保持分離。

+0

+1好視力 – Barmar 2013-04-11 08:48:59

0

你應該改變

$s1=mysqli_query($link,$q); 

$s1=mysqli_query($link,$q1); 

,因爲你的查詢存儲在$ Q1

,你可以採取

mysqli_select_db($link, "second"); 

出while循環。你爲什麼選擇g每個iteartion數據庫..?一旦被選中,它會一直存在,直到你再次提醒它...

+0

我希望'$ row [name]'包含'second'數據庫中存在的表名 – alwaysLearn 2013-04-11 08:54:09