我有一个连接,连接的结果是正确的,但是我想显示一个变量,但它不像$variable那样是变量格式,而是格式$row['field'],但是,它没有显示正确的值,因为字段名称在两个表中。
有时它显示左边的,有时它显示右边的。 我不知道如何强制它显示我想要的那个。
例如,我有这个查询:
SELECT
user_table.*, user_groups.*
FROM
user_table
LEFT JOIN user_groups ON user_groups.groupid = user_table.usergroup
WHERE
user_table.client = "0"
AND user_table.usergroup != "1"
ORDER BY
user_groups.name ASC
不会在每个领域都投入,因为太多了,只有少数几个才能得到这个想法。
user_table:
userid, username, usergroup, fname, sname, company
user_groups:
groupid, name, userid
JOIN 将产生如下所示的结果:
userid username usergroup fname sname company groupid name userid1
1129 whatever 2286 first last abc 2286 abc 0
然后我开始像这样回显所有字段:
while ($row=mysql_fetch_assoc($result)) {
echo $row['username']." ".$row['userid']." ".$row['company']." ".$row['fname']." ".$row['sname']." ".$row['username'];
}
除用户 ID 外,所有数据都将是正确的。 它将使用零(0)而不是我想要的1129。
我已经为用户 id echo 尝试了以下所有方法:
$row['userid']
$row['userid0']
$row['userid1']
$row['userid[0]']
$row['userid[1]']
$row['userid'][0]
$row['userid'][1]
没有任何效果。它要么显示结果中的错误结果,要么不显示任何内容。
PHP 尝试将列名映射到key => value
对中。如果存在名称重复的列,则只会获得一个。
使用 AS
关键字 (http://www.w3schools.com/sql/sql_alias.asp) 映射 MySQL 中的第二userid
列,为第二个userid
字段指定不同的名称。
SELECT
user_table.*, user_groups.groupid, user_groups.name, user_groups.userid AS group_userid
FROM
user_table
LEFT JOIN user_groups ON user_groups.groupid = user_table.usergroup
WHERE
user_table.client = "0"
AND user_table.usergroup != "1"
ORDER BY
user_groups.name ASC
然后,您可以像这样访问这两个字段:
$row['userid']; // client.userid
$row['group_userid']; // user_groups.userid