【问题标题】:How to concatenate in a SQL query to get variable from database?如何在 SQL 查询中连接以从数据库中获取变量?
【发布时间】:2017-03-03 22:02:15
【问题描述】:

作为初学者,我不喜欢串联,但我认为这对我来说非常有用。所以我有一个 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'];?>";

显然这不起作用,那么我该如何连接?

【问题讨论】:

    标签: php mysql concatenation string-concatenation


    【解决方案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

    【讨论】:

      【解决方案2】:

      不需要连接

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

      【讨论】:

      • 这永远不会运行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2021-11-02
      相关资源
      最近更新 更多