我在附带的文件中有这个功能
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>";
我做错了什么?
答案 0 :(得分:0)
嗯,那是因为你的函数返回某种数组,所以你的循环相当于:
while ($modulelist = array(1, 2, 3)) {
这基本上意味着它永远都是真的。
您可能想要的是foreach
循环。
答案 1 :(得分:0)
ListModules()
返回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>";