Php 如何使用foreach的mysql查询创建dropdownlist?

Php 如何使用foreach的mysql查询创建dropdownlist?,php,mysql,arrays,Php,Mysql,Arrays,我有这样的密码 $result1 = mysql_query("select distinct Country from mtable UNION SELECT DISTINCT MidEstimate FROM mtable"); $row = mysql_fetch_assoc( $result1 ); echo "<select>"; foreach($row as $vals) { echo "<option name='$v

我有这样的密码

$result1 = mysql_query("select distinct Country  from mtable UNION SELECT DISTINCT MidEstimate FROM mtable");
$row = mysql_fetch_assoc( $result1 );

    echo "<select>";
    foreach($row as $vals)
    {
        echo "<option name='$vals'>$vals</option>";
    }
    echo "</select>";
下拉列表仅显示一个值?我需要此列表中两列的值。请帮助我对其进行排序

$result1 = mysql_query("select distinct Country  from mtable UNION SELECT DISTINCT MidEstimate FROM mtable");

echo "<select>";
while($row = mysql_fetch_assoc( $result1 ))
{
    echo "<option name=\"$vals['Country']\">$vals['Country']</option>";
}
echo "</select>";

因为您只对结果进行一次fecting,而mysql_fetch_assoc$result1只获取一行,而您需要所有行

所以我在查询中组合了两列值,以便下拉列表显示两列中的值。上述代码将仅显示“国家/地区”列中的值?有没有办法在下拉列表中同时显示两列值?我的答案和robp的答案有什么区别,除了他是以数组的形式获取之外?从你的答案中,它将只返回列表中一列的所有值,而其他的则列出列表中两列的所有值。哦,是的。。。它不会返回任何国家/地区,因为它显然是$row而不是$VAL:D。请注意,两个“DISTINCT”子句是多余的,因为“UNION”将重复您的结果。
$result1 = mysql_query("select distinct Country  from mtable UNION SELECT DISTINCT MidEstimate FROM mtable");  

echo "<select>";  
while($row = mysql_fetch_array($result1)){
    echo "<option name=\"$row[0]\">$row[0]</option>";
}
echo "</select>";