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 回答
0

您的报价不匹配,这就是 PHP 失败的原因。

尝试改变:

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

到:

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

基本上,您开始使用", 并在中途切换到使用'

于 2012-08-05T04:20:01.500 回答