我有以下MySQL表

|   module  | module_id |
|    301    |      1    |
|    302    |      2    |
|    303    |      3    |
|    304    |      4    |
|    305    |      5    |
|    306    |      6    |


模块的名称以JSON数组的形式传递给PHP。我想选择并显示数组中包含的所有模块ID。因此,例如,如果将模块301、303和306传递给脚本,我想返回值1、3和6。

我整理了以下几乎可以运行的脚本,但不幸的是,它仅返回第一个值-因此,如果数组中包含301、303和306,则该脚本将返回“ 1”,而不是1、3和6。

我确定可能缺少一些非常基本的东西,但无法弄清楚它是什么。有人可以帮忙吗?

谢谢!

$conn = (DATABASE CONNECTION INFO);
$modules = $_REQUEST['modules'];
$insertmodules = json_decode(stripslashes($modules), true);
$inmods = implode(',', $insertmodules);
$getmodsquery = "SELECT module_id FROM modules WHERE module IN ('$inmods')";
$getmods = $conn->query($getmodsquery);

while($row = $getmods->fetch_assoc()) {
 foreach ($row as $value){
  print_r($value);
  }
 }

最佳答案

从查询中删除报价,然后尝试以下行:

$getmodsquery = "SELECT module_id FROM modules WHERE module IN ($inmods)";

关于php - 使用IN将PHP数组与MySQL数据库进行比较,但仅显示第一个结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15221419/

10-11 04:28