php - 如何在查询中使用 while (foreach) 语句中的变量?

标签 php mysql

我有第一个问题

 <?php 
       while($empsheetpanel=mysqli_fetch_array($resultempsheets)){

 ?>

为了从第一个查询中获取数据,我放置了第二个查询

 <?php
 $sql="SELECT * From my_table WHERE id="$empsheetpanel['employee_id']" ";
 $result=mysqli_query($db,$sql);
 ?>
<?php } ;?>

我知道这是不恰当和不正确的。从第一个查询中检索 $empsheetpanel['employee_id'] 的正确语法是什么?

最佳答案

您需要使用 . 来连接字符串:

$sql="SELECT * From my_table WHERE id=" . $empsheetpanel['employee_id'];

或者你可以使用字符串插值:

$sql="SELECT * From my_table WHERE id={$empsheetpanel['employee_id']}";

但更好的解决方案是不要将此作为循环中的单独查询来执行。将此表与您的原始查询结合起来。

因此,如果您的第一个查询是:

SELECT * FROM my_other_table WHERE some conditions here

您可以将它们连接在一起:

SELECT * 
FROM my_other_table
JOIN my_table ON my_table.id = my_other_table.employee_id
WHERE some conditions here

此结果的每一行都将包含两个表中数据的组合。如果 my_table 可能没有匹配的行,您应该使用 LEFT JOIN 而不是 JOIN

关于php - 如何在查询中使用 while (foreach) 语句中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132266/

相关文章:

php - 设置每个用户名只能选择一次微调器中的项目

php - 无法将 mysql 查询放在一起

MYSQL:如何在不查询整个表的情况下获取过去X小时内插入的行

php - 当索引不匹配时如何比较两个数组

php - 在 CSS 伪类的 'content' 内动态生成文本

php - Avada 模板中的定价表 - 添加列链接

mysql - mysql表列的数据类型应该是什么,用于存储注释

php - 找不到 Cake php 数据源类 MySQL

php - 涉及两个MySQL表的上传问题

php - 如何从 MySQL 列中提取数据并将其放入单个数组中