2011-12-16 28 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']; 

仅供参考,你应该列出即使您想要全部检索它们,您也希望检索该列而不是使用*,因为如果您将来添加新列,这会更好。

相关问题