我编辑了这个问题,因为我之前说的是两段代码。
我有以下代码:
$f = "SELECT * FROM ".TBL_FIXTURES." WHERE compname = '$_POST[league]' AND home_user = '$_SESSION[username]' ORDER BY away_user";
$fixtures = mysql_query($f);
?>
<?
while( $row = mysql_fetch_assoc($fixtures))
{
extract($row);
$info = explode("_",$row[compname]);
?>
<select name="hu" class="combo">
<option value="<? echo $home_user ?>"><? echo $home_user?></option>
</select>
<select name="au" class="combo">
<?php
while( $row = mysql_fetch_assoc($fixtures))
{
$u=$row['away_user'];
echo "<option value=\"$u\">$u</option>";
}
?>
</select>
<?
}
?>
如您所见,有两个while循环。但是缺少了off_user下拉列表中的第一个值。如果我删除第一个循环,它会出现,但home_user的下拉菜单会消失。我怎么能绕过这个?
感谢
答案 0 :(得分:0)
是否会出错? 看起来你错过了这一行末尾的括号(“):
echo"<div align=\"center\"> <table cellspacing=\"10\" style='border: 1px dotted' width=\"450\" bgcolor=\"#eeeeee\">
答案 1 :(得分:0)
我不确定你为什么还要打印一个表...但是你在循环中输出</select>
,这就是问题所在。
你应该做
echo '<select>';
while (....)
{
echo '<option>'.$u.'</option>';
}
echo '</select>';
<table code here>
答案 2 :(得分:0)
问题是在你的第二个循环中你调用了mysql_fetch_assoc($ fixtures),所以在使用第一个记录中的away_user字段之前你继续前进到第二个记录。我能想到的两个选择是:
在循环之前创建第一个选项
<select name="au" class="combo">
<?php
$u=$row['away_user'];
echo "<option value=\"$u\">$u</option>";
while( $row = mysql_fetch_assoc($fixtures))
{
$u=$row['away_user'];
echo "<option value=\"$u\">$u</option>";
}
?>
</select>
将循环更改为do while循环
<select name="au" class="combo">
<?php
do
{
$u=$row['away_user'];
echo "<option value=\"$u\">$u</option>";
} while( $row = mysql_fetch_assoc($fixtures))
?>
</select>