2017-03-03 149 views
0

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

<?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

你不应该加入变量来查询,你应该参数并将它们绑定...但你不需要做任何的。您可以使用多个连接进行一次查询。

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

无需串接

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

这将永远不会运行。 –

相关问题