如何连接 SQL 查询以从数据库中获取变量?
How to concatenate in a SQL query to get variable from database?
作为初学者,我不喜欢连接,但我认为这对我来说非常有用。所以我有一个 while 语句从数据库中的 table 获取数据。我在下面和 while 语句之间使用第二个查询来显示来自不同 table 的额外信息。
<?php while($employeeproject=mysqli_fetch_array($resultemp)){ ?>
<td data-th="Employee">
<!-- INNER JOIN EMPLOYEE TO GET NAMES -->
<?php $sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id";$resulempls=mysqli_query($db,$sqlemps);$displayempnames = $resulempls->fetch_assoc();?>
<?=$displayempnames['first_name'];?> <?=$displayempnames['last_name'];?>
</td>
<?php };?>
while 语句从 employeeprojects
获取信息,我显示与 employees
table 连接的名称。它有效,但问题是程序显示相同的名称,即使它是不同的 employee_id
。我想在第二个查询中连接并添加一个 WHERE 子句,但我不确定如何操作。
类似...
$sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id WHERE employee_id=<?=$employeeproject['employee_id'];?>";
显然这行不通,那么我该如何连接?
无需串联
$empID = $employeeproject['employee_id'];
$sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id WHERE employee_id= $empID";
您不应该将变量连接到查询,您应该参数化并绑定它们...但您不需要执行任何操作。您可以使用多重连接通过一个查询完成所有这些操作。
SELECT first_name, last_name, project_name, client_name
from projects as p
join employeeprojects as ep
on p.id = ep.project_id
joiN employees as e
on ep.employee_id = e.employee_id
作为初学者,我不喜欢连接,但我认为这对我来说非常有用。所以我有一个 while 语句从数据库中的 table 获取数据。我在下面和 while 语句之间使用第二个查询来显示来自不同 table 的额外信息。
<?php while($employeeproject=mysqli_fetch_array($resultemp)){ ?>
<td data-th="Employee">
<!-- INNER JOIN EMPLOYEE TO GET NAMES -->
<?php $sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id";$resulempls=mysqli_query($db,$sqlemps);$displayempnames = $resulempls->fetch_assoc();?>
<?=$displayempnames['first_name'];?> <?=$displayempnames['last_name'];?>
</td>
<?php };?>
while 语句从 employeeprojects
获取信息,我显示与 employees
table 连接的名称。它有效,但问题是程序显示相同的名称,即使它是不同的 employee_id
。我想在第二个查询中连接并添加一个 WHERE 子句,但我不确定如何操作。
类似...
$sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id WHERE employee_id=<?=$employeeproject['employee_id'];?>";
显然这行不通,那么我该如何连接?
无需串联
$empID = $employeeproject['employee_id'];
$sqlemps="SELECT first_name, last_name FROM employees INNER JOIN employeeprojects ON employees.employee_id=employeeprojects.employee_id WHERE employee_id= $empID";
您不应该将变量连接到查询,您应该参数化并绑定它们...但您不需要执行任何操作。您可以使用多重连接通过一个查询完成所有这些操作。
SELECT first_name, last_name, project_name, client_name
from projects as p
join employeeprojects as ep
on p.id = ep.project_id
joiN employees as e
on ep.employee_id = e.employee_id