2012-03-25 5 views
1

私は奇妙な問題があります。基本的に私のページは、PHPの小さなビットの後にうまく動作しますが、それらの行の後のすべてがページも読み込まれません。いくつかのPHPコードはページの残りの部分を破っています

+2

エラー報告をオンにして、スクリプトからエラーが発生していないかどうかを確認します。 – Bojangles

+0

また、テーブルから 'id'フィールドのみを選択している場合、数値データを含むオプションを選択できます( 'id'はmysqlテーブルの自動インクリメントフィールドです)。あなたは "id、学校からの名前を選択"のようなものに変更したいかもしれません。 私はJamWafflesに同意しますが、詳細についてはWebサーバーのエラーログを確認する必要があります。 – iandouglas

答えて

4

フェッチループ内die(mysql_error())を呼び出すことはありませんそれが動作する前に、そのエコー後のPHPの一部は動作しますが、何が

「選択」doesntの

<?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>"; 

?> 

すべてがすべてのヘルプは素晴らしいだろう。 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()'が普通の*ではなく* too much *を使用しているのが気になります。 – JJJ

+0

ありがとう、それは解決策だった。 :)時間が上がっている時に答えを受け入れるだろう:) – nmyster

0

チャンスは、あなたのスクリプトがブラウザで見えない<select>タグ、内部or die() INGです。

ページのソースを表示すると、最後にPHP致命的なエラーまたはdieメッセージが表示される可能性があります。

編集:またはマイケルの答えを読んで、私は物事がどのように働いたか忘れてしまった。 Duh:p少なくともこの回答は、今後、関連する問題を見つけるのに役立ちます。

関連する問題