从查询中调用别名变量到php

时间:2015-04-09 06:49:54

标签: php mysql

$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的正确语法是什么。

3 个答案:

答案 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'];
}