php - 当表列连接两次时从 mySQL 回显数据

标签 php mysql

我试图回显员工姓名和经理姓名

SQL 查询:

SELECT * 
FROM `form` 
INNER JOIN `emp` AS employee
ON `form`.emp_ID = employee.emp_ID
INNER JOIN `emp` AS manager
ON `form`.manager_ID = manager.emp_ID

echo :

while($row = $result->fetch_assoc()){
echo $row['emp_name']; 
}

始终输出经理姓名。

已尝试以下方法:

$row['employee.emp_name']
$row['employee']['emp_name']

这一切都不起作用。

感谢任何帮助

最佳答案

当列具有相同名称时,通过 fetch_assoc() 检索时,它们的值将重叠。您可以使用 fetch_array() 并通过数字索引引用列(不建议使用 SELECT *,因为您无法轻松保证列的顺序),或者您必须明确列出列名并为其指定别名。例如:

SELECT emp.emp_name emp_emp_name, manager.emp_name manager_emp_name, ...

这将在结果中为您提供单独的、明确命名的字段,然后您可以从 fetch_assoc() 返回的内容中访问这些字段。

关于php - 当表列连接两次时从 mySQL 回显数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34803606/

相关文章:

php - Laravel - 可重用的资源 Controller

javascript - Wordpress ajax 调用返回整个 html 页面

php - 在 Windows 8 PC、Xampp 中安装 Symfony 2.8

php - 默认情况下,WordPress 会在其 JavaScript 中公开基本 URL 吗?

mysql - AWS RDS 可用内存和交换空间使用量较低

mysql - 通过 pdo 停止查询

php - 阻止 Composer 更新重新安装

mysql - SQL 查询 : join two tables

mysql - 如何在MYSQL中检查记录是否存在并进行Insert?

php - MySQL 将两个不同的字符串视为相同