2012-03-25 172 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至少這個答案會幫助你在將來找到相關的問題。

相關問題