如何在SQL查询中连接以从数据库中获取变量?

时间:2017-03-03 22:02:15

标签: php mysql concatenation string-concatenation

作为初学者,我不喜欢连接,但我认为这对我来说非常有用。所以我有一个while语句从数据库中的表中获取数据。我正在使用下面的第二个查询,并在while语句之间显示来自不同表的额外信息。

<?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表的名称。它有效,但问题是程序显示相同的名称,即使它是一个不同的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'];?>";

显然这不起作用,所以如何连接?

2 个答案:

答案 0 :(得分:2)

您不应该将变量连接到查询,您应该参数化并绑定它们......但是您不需要执行任何操作。您可以使用多个连接进行一次查询。

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 

演示:http://sqlfiddle.com/#!9/19630e/2

答案 1 :(得分:-1)

无需连接

    $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";