2011-12-16 114 views
0

我有以下腳本中:一個變量行另一個變量行

$sql = "SELECT * FROM `users`" 
$q = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_array($q); 
$sql1 = "SELECT * FROM `other_table`"; 
$q1 = mysql_query($sql1) or die(mysql_error()); 
$row1 = mysql_fetch_array($q1); 
$item = $row1[$row['username']]; 

如何設置一個變量行內另一個,因爲它不工作。基本上,我需要選擇用戶名,然後從其他表中選擇具有用戶名的列,其中寫入用戶點。

我想補充說:

$sql = "SELECT * FROM `users`" 
$q = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_array($q); 
$sql1 = "SELECT `".$row['username']."` FROM `other_table` WHERE `uid` = 1"; 
$q1 = mysql_query($sql1) or die(mysql_error()); 
$row1 = mysql_fetch_array($q1); 
$item = $row1[xxxxxxxxxx]; // DONT KNOW HOW TO DEFINE IT, so it takes out found variable (there is only one). 
+1

它看起來像你忘了問一個問題。 – konsolenfreddy 2011-12-16 18:50:53

回答

2

猜你想要的東西像

SELECT * FROM table1 t1, table2 t2 WHERE t1.user_name = t2.user_name? 

考慮使用JOIN

0
$sql = "SELECT * FROM users;"; 
$q = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_array($q); 

$sql1 = sprintf("SELECT * FROM other_table where username='%s';", $row['username']); 
$q1 = mysql_query($sql1) or die(mysql_error()); 
$row1 = mysql_fetch_array($q1); 

//現在$ ROW1包含此元組用戶和可以訪問的變量是你會 //通常做例如$ ROW1 [「ID」]

0
SELECT * FROM users AS u INNER JOIN other_table AS o ON u.username = o.username 

我假設你想,因爲你希望能夠從任一臺訪問所有的行,其中一個特定的用戶名是一樣的(例如,從數據做到這一點users其中username="john"和來自other_table的數據,其中username="john"用於所有用戶名)。無需窩設置爲做到這一點的結果,只是用一個JOIN語句,然後,如果它是你可以訪問所有列一個結果集(因爲它):

$sql = "SELECT * FROM users AS u INNER JOIN other_table AS o ON u.username = o.username"; 
$q = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_array($q); 

$item = $row['any_column']; 

僅供參考,你應該列出即使您想要全部檢索它們,您也希望檢索該列而不是使用*,因爲如果您將來添加新列,這會更好。