2012-03-25 96 views
1

我有一个奇怪的问题。基本上我的网页工作正常,但一小部分的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

打开错误报告并查看是否从脚本中获得任何错误。 – Bojangles 2012-03-25 13:37:50

+0

另外,如果你只是从表中选择'id'字段,你将只能得到带有数字数据的选项(假设'id'是你的mysql表中的自动增量字段)。你可能想把它改成“select id,name from school” 虽然我同意JamWaffles,但你应该检查你的web服务器错误日志中的任何细节。 – iandouglas 2012-03-25 13:41:45

回答

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

看到'mysql_error()'使用*太多*而不是通常* *根本就不令人耳目一新*。 – JJJ 2012-03-25 13:41:23

+0

谢谢,那就是解决方案。 :)时间到了的时候会接受答案:) – nmyster 2012-03-25 13:41:37

0

机会是你的脚本是or die()荷兰国际集团的<select>标签,这是在浏览器里看不到。

查看此页面的源代码,最有可能在最后看到PHP致命错误或die消息。

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

相关问题