Foreach PHP循环到数组
问题描述:
我想创建一个包含SQL表结果的数组。但我的foreach循环似乎没有正确的功能。Foreach PHP循环到数组
这是我的代码: $ stmt-> bind_param(“i”,$ id); $ stmt-> execute(); ($ stmt-> fetch()){ } $ stmt-> close();
$i = 0;
foreach ($connected_items as &$value) {
print_r ($connected_items[$i]);
$stmt->bind_param("i", $connected_items[$i]);
$stmt->execute();
while ($stmt->fetch()) {
$result[] = array(,
);
}
$stmt->close();
$i++;
}
unset($value);
)
)
这似乎是运行在for循环在我的打印语句,然后MySQL的语句,使用最后connected_items_id,这是为什么?为什么它不返回该ID的关联值?
答
删除此[]在行号6:
while ($stmt->fetch()) {
$connected_items = array($connected_items_id);
}
取而代之:
while ($stmt->fetch()) {
$connected_items[] = array($connected_items_id);
}
答
尝试
foreach ($connected_items as $value) {
......................
......................
$stmt = $this->db->prepare('SELECT name, serial FROM `glpi_monitors` WHERE id =?');
$stmt->bind_param("i", $value[0]);
................................
................................
}
你也可以用它代替循环,每次查询IN
关键字。
$sql = "SELECT name, serial FROM `glpi_monitors` WHERE id IN('".implode("','",$connected_items)."'");
$stmt = $this->db->prepare($sql);
例如:
答
尝试此,
"connected_item_id" => $connected_items[0],
代替
"connected_item_id" => $connected_items_id,