PHP使用SQL数据填充下拉列表

时间:2012-04-16 02:08:47

标签: php sql

我想用数据库中的值填充下拉列表。

<?php
require 'conn.php';

$filter=mysql_query("select distinct fuel_type from car");
while($row = mysql_fetch_array($filter)) {
$options ="<option>" . $row['fuel_type'] . "</option>";

$menu="<form id='filter' name='filter' method='post' action=''>
  <p><label>Filter</label></p>
    <select name='filter' id='filter'>
      " . $options . "
    </select>
</form>";

echo $menu;
}
?>

问题是我得到两个列表而不是一个列表,其中包含值。请指教

drop down list

3 个答案:

答案 0 :(得分:2)

echo $menu;应该在你的循环之外。

答案 1 :(得分:2)

您需要从循环中移除$menu

<?php
require 'conn.php';

$options = '';
$filter=mysql_query("select distinct fuel_type from car");
while($row = mysql_fetch_array($filter)) {
    $options .="<option>" . $row['fuel_type'] . "</option>";
}

$menu="<form id='filter' name='filter' method='post' action=''>
  <p><label>Filter</label></p>
    <select name='filter' id='filter'>
      " . $options . "
    </select>
</form>";

echo $menu;

?>

答案 2 :(得分:1)

<?php
require 'conn.php';

$filter=mysql_query("select distinct fuel_type from car");
$menu="
<form id='filter' name='filter' method='post' action=''>
  <p><label>Filter</label></p>
    <select name='filter' id='filter'>";

// Add options to the drop down
while($row = mysql_fetch_array($filter))
{
  $menu .="<option>" . $row['fuel_type'] . "</option>";
}

// Close menu form
$menu = "</select></form>";

// Output it
echo $menu;
?>