我在包含的文件中有这个函数
function ListModules() {
try {
global $DBH;
$ListModules->query("SELECT * FROM modules");
$ListModules->execute();
return $ListModules->fetchAll();
} catch (PDOException $e) {
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
} }
然后我试着将它们回显到像这样的下拉框中:
echo "<select name='deletelist' class='form-control'>
<option value='0'>Choose a module to delete</option>";
while($modulelist = ListModules()) {
echo "<option value='".$moduelist['id']."'>".$modulelist['name']."</option>";
}
echo "</select>";
我做错了什么?
ListModules()
return array
while($modulelist = ListModules())
等于
while(true)
必须循环数组,在您的情况下,最好使用foreach
$modulelist = ListModules();
echo "<select name='deletelist' class='form-control'>
<option value='0'>Choose a module to delete</option>";
foreach( $modulelist as $module ){
echo "<option value='".$module ['id']."'>".$module ['name']."</option>";
}
echo "</select>";
这是因为你的函数返回某种数组,所以你的循环相当于:
while ($modulelist = array(1, 2, 3)) {
这基本上意味着它总是为真。
你可能想要的是一个foreach
循环