这就是我所拥有的
function GetEventsList(){
$result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row AS $key => $value) { $row[$key] = stripslashes($value); }
$id = $row['id'];
$en = $row['name'];
$endt = $row['date'];
$push = "<option value=$id>$en - $endt</option>";
return $push;
}
}
当表中有3个
时,它只返回1个结果答案 0 :(得分:4)
那是因为你在第一次迭代结束时从函数返回。尝试:
function GetEventsList() {
$result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error());
$push = '';
while ($row = mysql_fetch_array($result)) {
foreach($row AS $key => $value) {
$row[$key] = stripslashes($value);
}
$id = $row['id'];
$en = $row['name'];
$endt = $row['date'];
$push .= "<option value=$id>$en - $endt</option>";
}
return $push;
}
旁注:如果您使用了良好的格式/缩进,那么您就更容易发现。
此外,您确定需要使用stripslashes()
吗?
答案 1 :(得分:2)
如果我正确阅读代码,请返回$ push;过早退出while循环。您希望仅在收集所有结果并将其存储在某些内容后才返回。
答案 2 :(得分:0)
在foreach循环中使用echo $ push;或者将option元素的每次迭代放入一个数组中,然后根据需要插入数组。