2011-05-30 18 views
0

我想做出7个下拉列表,最后5个有相同的内容,现在我的问题是,第三个显示所有的内容,但其余(4,5,6,7)只显示“选择电影”。 下面是代码:如何在表单中添加相同的下拉列表5次?

@$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'][email protected]$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'][email protected]$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>"; 
?> 

任何意见,任何其他方法welcome.Thank你。

回答

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++; 
} 
+0

谢谢you.It workes。 – user747192 2011-05-30 17:26:36

0
while($noticia3 = mysql_fetch_array($quer3)) { 

这将通过您的$i < 5 while循环获取所有从$quer3在第一次的结果。所以当$ i = 0时,你打印出所有的查询结果。然后i = 1出现,并且没有更多结果行。相同的i = 2,i = 3等...

相关问题