2017-03-03 4 views
0

初心者として私は連結のファンではありませんが、これは私が知るのに本当に役立つものだと思います。だから私は、データベース内のテーブルからデータを取得するwhileステートメントを持っています。私は、別のテーブルから余分な情報を表示するために、そのwhileステートメントの下で、2番目のクエリを使用しています。データベースから変数を取得する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です。 2番目のクエリで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

の必要がありませんあなたは、クエリに変数を結合するべきではありません、あなたはパラメータ化し、それらをバインドする...しかし、あなたはそれのいずれかを実行する必要はありません必要があります。マルチ結合を使用して、すべて1つのクエリでこれを行うことができます。

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

これは実行されません。 –

関連する問題