我有一个奇怪的问题。基本上我的页面工作正常但是在一小部分PHP之后,这些行之后的所有内容都不会加载页面。
<?php
//GET SCHOOLS
$sql = "SELECT `id` FROM `school`";
$query = mysql_query($sql) or die(mysql_error());
$numschools = mysql_num_rows($query);
echo "<select id=\"schoolselect\" class=\"schoolselect\" value=\"Select School\">
<option id='selectschool' value = \"select\" name=\"select\">Select A School</option>
";
while($result = mysql_fetch_array($query) or die(mysql_error()))
{
$school = $result['id'];
echo "<option value = \"$school\" name=\"$school\">".$school ."</option>";
}
echo "</select>";
?>
在此之前的一切工作,php部分工作,但回声“选择”之后的任何东西都没有
任何帮助都会很棒
答案 0 :(得分:4)
永远不要在获取循环中调用die(mysql_error())
。当没有更多行可用时,mysql_fetch_array()
会返回FALSE
,因此当到达最后一行时,将调用die()
并且您的脚本将终止而</select>
未关闭。您不会收到错误消息,但是您将留下不完整的HTML,无法在浏览器中正确呈现。
// Don't call die(mysql_error()) in a fetch loop!
while($result = mysql_fetch_array($query))
{
$school = $result['id'];
echo "<option value = \"$school\" name=\"$school\">".$school ."</option>";
}
答案 1 :(得分:0)
您的脚本可能or die()
位于<select>
标记内,该标记在浏览器中不可见。
查看页面的来源,您很可能会在最后看到PHP致命错误或die
消息。