0

このページは、データベースからプルされたオプションを生成します。別のページでは、 year_joining を介して学生の入学年がここに表示されます。残りの mysql クエリは完全に正常に動作します (テスト済み)

<?php
include_once("../Include/connectdb.php");

if($_GET['year_join'])
{
$id=$_GET['year_join'];

$result1 = mysql_query("select distinct sub_id from subject_profile where   batch='$id'        

")or die(mysql_error());

  while($subid = mysql_fetch_assoc($result1)){

 $result2 = mysql_query("SELECT name FROM  `subjects` WHERE  `sub_id` LIKE    

'$subid[sub_id]'");

    $subject=mysql_fetch_assoc($result2);

    if($subject[name]!=""){
  //print "<OPTION value=".$tmp.'">'.$tmp.'</OPTION>';
  //print "<OPTION value='$tmp'>'$tmp'</OPTION>";
  echo "<option value=".$subject['name'] . '">' . $subject['name'] . '</option>';
  //echo '<option value="'.$id.'">'.$data.'</option>';
 //}
 }
}
}
?>

ご参考までに :

//print "<OPTION value=".$tmp.'">'.$tmp.'</OPTION>';
//print "<OPTION value='$tmp'>'$tmp'</OPTION>";
echo "<option value=".$subject['name'] . '">' . $subject['name'] . '</option>';
//echo '<option value="'.$id.'">'.$data.'</option>';

これらのどれも機能していません... :(

単純な echo $tmp で動作しますが、いつでも

echo "<option value=";

結果は空白のページです...

そして、私がエコーしているとき-変数だけを実行すると、完全に正常に機能します

echo $tmp;

すべての主題のリストを与える..

4

3 に答える 3

2

<select>「出力が表示されない」という問題については、タグを囲むタグを見逃していると思い<option>ます。

補足として、クエリでは、次のように変更します。

"SELECT name FROM  `subjects` WHERE  `sub_id` LIKE '{$subid[sub_id]}'"

また、

"SELECT name FROM  `subjects` WHERE  `sub_id` LIKE '" . $subid[sub_id] . "'"

それでも安全ではありません。値をエスケープし、mysqli または PDO を使用して準備済みステートメントを使用する必要があります。

于 2012-08-05T04:09:32.907 に答える
1

主な問題は、Akhilesh B Chandran の回答によると、<select>タグがありません。

それ以外に$subject['name']、スペースがあると問題が発生します。

問題は次の行です。

echo "<option value=".$subject['name'] . '">' . $subject['name'] . '</option>';

次のようになります。

echo '<option value="'.$subject['name'] . '">' . $subject['name'] . '</option>';

現在持っているものでは、ブラウザは結果を次のように解釈します。

<option value=insert name here">insert name here</option>

ご覧のとおり、 の後に引用符がありませんvalue=

于 2012-08-05T04:25:55.920 に答える