简体   繁体   English

从查询到PHP调用别名变量

[英]Calling an aliased variable from query into php

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

I have been trying to echo E.first_name but it does not seem to work. 我一直在尝试回显E.first_name,但它似乎不起作用。 What will be the correct syntax to call E.first_name or F.first_name. 调用E.first_name或F.first_name的正确语法是什么。

Use aliases for those variables: 对这些变量使用别名:

$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
}

And beware: mysql_ functions are deprecated and will be removed in future implementations as they bear a risk of mysql injections. 并且要当心:mysql_函数已被弃用,并且在将来的实现中将被删除,因为它们承担mysql注入的风险。 Change to mysqli or PDO to get use of prepared statements which prevent against injections. 更改为mysqli或PDO以使用准备好的语句来防止注入。

Its better to give a proper alias name when you have same column names repeated in the query while doing join. 如果您在进行联接时在查询中重复了相同的列名,则最好提供适当的别名。

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

You can access the values at the PHP as 您可以通过以下方式在PHP上访问值:

$row['E_firstname'] 

and so on for others 对其他人等等

You should use this: 您应该使用此:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM