我有以下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/