如何在表单中添加相同的下拉列表5次?

时间:2011-05-30 16:27:31

标签: php mysql

我想制作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>";
?>

任何建议,欢迎任何其他方法。谢谢。

2 个答案:

答案 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++;
}