一些PHP代码打破了页面的其余部分

时间:2012-03-25 13:35:59

标签: php

我有一个奇怪的问题。基本上我的页面工作正常但是在一小部分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部分工作,但回声“选择”之后的任何东西都没有

任何帮助都会很棒

2 个答案:

答案 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消息。

编辑:或者阅读迈克尔的答案,因为我忘了事情是如何运作的。 Duh:p至少这个答案可以帮助你找到将来的相关问题。