我想制作7个下拉列表,最后5个具有相同的内容,现在我的问题是第3个显示所有内容,但其余的(4,5,6,7)正在显示只有“选择电影”。 这是代码:
@$pro=$_GET['pro'];
if(strlen($pro) > 0 and !is_numeric($pro)){ /
echo "Data Error";
exit;
}
$quer=mysql_query('SELECT DISTINCT programName,programId FROM '.TBL_PROGRAM.' order by programId');
if(isset($pro) and strlen($pro) > 0){
$quer2=mysql_query("SELECT DISTINCT categorieName,id FROM ".TBL_CATEGORIE."where id=$pro order by id" );
}else{
$quer2=mysql_query("SELECT DISTINCT categorieName,id FROM ".TBL_CATEGORIE." order by id");
}
if(isset($pro) and strlen($pro) > 0){
$quer3=mysql_query("SELECT DISTINCT movieName,movieId FROM ".TBL_MOVIE." where movieId=$pro order by movieId");
}else{
$quer3=mysql_query("SELECT DISTINCT movieName,movieId FROM ".TBL_MOVIE." order by movieId");
}
echo "<form method=POST name=f1 action='program.php'>";
echo "<select name='pro[]' style='width:150' onchange=\"reload(this.form)\"><option value=''>Make your Program</option>";
while($noticia = mysql_fetch_array($quer)) {
if($noticia['programId']==@$pro)
{
echo "<option selected value='$noticia[programId]'>$noticia[programName]</option>"."<BR>";}
else{
echo "<option value='$noticia[programId]'>$noticia[programName]</option>";}
}
echo "</select>";
echo "<BR>";
echo "<select name='pro[]' style='width:150' onchange=\"reload3(this.form)\"><option value=''>Choose Categorie</option>";
while($noticia2 = mysql_fetch_array($quer2)) {
if($noticia2['id']==@$pro)
{
echo "<option selected value='$noticia2[id]'>$noticia2[categorieName]</option>"."<BR>";}
else{
echo "<option value='$noticia2[id]'>$noticia2[categorieName]</option>";}
}
echo "</select>";
echo "<BR>";
$i=0;
while($i<5){
echo "<select name='pro[]' style='width:150' ><option value=''>Select movie</option>";
while($noticia3 = mysql_fetch_array($quer3) ) {
echo "<option value='$noticia3[movieId]'>$noticia3[movieName]</option> ";
}
echo "</select>";
echo "<BR>";
$i++;
}
echo"<input type=hidden name=submit value=1>";
echo "<input type=submit value=Submit>";
echo "</form>";
?>
任何建议,欢迎任何其他方法。谢谢。
答案 0 :(得分:0)
while($noticia3 = mysql_fetch_array($quer3) ) {
这将首次通过$quer3
while循环从$i < 5
获取所有结果。因此,当$ i = 0时,您将打印出所有查询结果。然后i = 1出现,并且没有结果行。同样适用于i = 2,i = 3等......
答案 1 :(得分:0)
一旦从mysql结果中获取记录,它将其位置移动到下一行...在第一个循环结束时,位置将保持在记录状态的结束,因此从第二个循环开始它将只打印空白。
那么好: 1.)将选项列表存储在字符串中 2.)在循环中打印列表
改为使用:
$i=0;
$strOptions = '';
while($noticia3 = mysql_fetch_array($quer3) ) {
$strOptions .= "<option value='$noticia3[movieId]'>$noticia3[movieName]</option>";
}
while($i<5){
echo "<select name='pro[]' style='width:150' ><option value=''>Select movie</option>";
echo $strOptions;
echo "</select>";
echo "<BR>";
$i++;
}