另一个变量行中的一个变量行

时间:2011-12-16 18:48:48

标签: php

我有以下脚本:

$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).

3 个答案:

答案 0 :(得分:2)

猜猜你想要像

这样的东西
SELECT * FROM table1 t1, table2 t2 WHERE t1.user_name = t2.user_name?

考虑使用JOIN

答案 1 :(得分: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']

答案 2 :(得分: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'];

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