$query = mysql_query("SELECT DISTINCT E.first_name, E.last_name, F.first_name, F.last_name
FROM faculty AS E, faculty AS F, evaluations_faculties
WHERE evaluator_id = E.user_id
AND evaluee_id = F.user_id");
while( $row = mysql_fetch_assoc($query))
{
echo $row['E.first_name'];
}
我一直试图回应E.first_name,但它似乎不起作用。调用E.first_name或F.first_name的正确语法是什么。
答案 0 :(得分:0)
对这些变量使用别名:
$query = mysql_query("SELECT DISTINCT E.first_name as fname, E.last_name as lname, F.first_name as ffname, F.last_name as flname
^^^^^^^^
FROM faculty AS E, faculty AS F, evaluations_faculties
WHERE evaluator_id = E.user_id AND evaluee_id = F.user_id");
while( $row = mysql_fetch_assoc($query))
{
echo $row['fname'];//etc
}
请注意:不推荐使用mysql_函数,并且在将来的实现中将删除它们,因为它们存在mysql注入的风险。更改为mysqli或PDO以使用准备好的语句来防止注入。
答案 1 :(得分:0)
在进行连接时,如果在查询中重复使用相同的列名,最好给出正确的别名。
SELECT DISTINCT
E.first_name as E_firstname,
E.last_name as E_lastname,
F.first_name as F_firstname,
F.last_name as F_lastname
FROM faculty AS E, faculty AS F, evaluations_faculties
WHERE evaluator_id = E.user_id
AND evaluee_id = F.user_id
您可以访问PHP中的值
$row['E_firstname']
以及其他人
答案 2 :(得分:0)
你应该用这个:
$query = mysql_query("SELECT DISTINCT E.first_name AS e_first_name, E.last_name, F.first_name AS f_first_name, F.last_name
FROM faculty AS E, faculty AS F, evaluations_faculties
WHERE evaluator_id = E.user_id
AND evaluee_id = F.user_id");
while( $row = mysql_fetch_assoc($query))
{
echo $row['e_first_name'];
}