Php 如何在表单中添加5次相同的下拉列表?
我想做7个下拉列表,最后5个有相同的内容,现在我的问题是第3个显示所有的内容,但其余的(4,5,6,7)只显示“选择电影”。 代码如下:Php 如何在表单中添加5次相同的下拉列表?,php,mysql,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_PROG
@$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>";
?>
@$pro=$\u GET['pro'];
如果(strlen($pro)>0并且!是数值($pro)){/
回显“数据错误”;
出口
}
$quer=mysql\u查询('SELECT DISTINCT programName,programId FROM'.TBL\u PROGRAM.'order by programId');
如果(isset($pro)和strlen($pro)>0){
$quer2=mysql_查询(“从“.TBL_CATEGORIE.”中选择不同的categorieName,id,其中id=$proorderby id”);
}否则{
$quer2=mysql_查询(“从“.TBL_CATEGORIE.”按id排序中选择不同的categorieName,id”);
}
如果(isset($pro)和strlen($pro)>0){
$quer3=mysql_查询(“从“.TBL_MOVIE.”中选择不同的movieName、movieId,其中movieId=$proorderbymovieid”);
}否则{
$quer3=mysql_查询(“从“.TBL_MOVIE.”;
}
回声“;
echo“制作你的程序”;
而($noticia=mysql\u fetch\u数组($query)){
如果($noticia['programId']=@$pro)
{
echo“$noticia[programName]”
“;}
否则{
echo“$noticia[programName];}
}
回声“;
回声“
”;
呼应“选择分类”;
而($noticia2=mysql\u fetch\u数组($query2)){
如果($NOTIIA2['id']=@$pro)
{
回显“$NOTIIA2[CATEGRIENAME]”
“;}
否则{
回显“$NOTIIA2[categorieName];}
}
回声“;
回声“
”;
$i=0;
而我
欢迎任何建议,任何其他方法。谢谢
while($noticia3 = mysql_fetch_array($quer3) ) {
这将在第一次通过
$i<5
while循环从$query3
获取所有结果。因此,当$i=0时,您将打印所有查询结果。然后i=1出现,不再有结果行。对于i=2,i=3等,情况相同。一旦您从mysql结果中获取记录,将其位置移动到下一行…通过e第一次循环的nd位置将保持在记录结束状态,因此从第二次循环开始,它将只打印空白
所以更好:
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++;
}
$i=0;
$strOptions='';
而($noticia3=mysql\u fetch\u数组($query3)){
$strOptions.=“$noticia3[movieName]”;
}
而我