此页面生成从数据库中提取的选项。另一页通过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;
列出了所有科目......
答案 0 :(得分: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
来转义值并更好地使用预准备语句答案 1 :(得分: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=
之后缺少引用。
答案 2 :(得分:0)
您的报价不匹配,这就是PHP失败的原因。
尝试更改:
echo "<option value=".$subject['name'] . '">' . $subject['name'] . '</option>';
为:
echo "<option value=".$subject['name'] . ">" . $subject['name'] . "</option>";
基本上,您开始使用"
,然后切换到使用'