为什么数据库中的值不会显示在我的下拉菜单中?

时间:2014-07-23 05:28:29

标签: php html mysql sql pg

我根据其规格将html5和PHP组合在一起编写此页面。我的问题是,当我将页面连接到一个特定的数据库(我在这个页面上做了两次)时,第二个连接显示我完美布局的表格中的值,但是第一个连接给了我一个带空格的下拉菜单。菜单假设按字母顺序显示所有50个状态,就像它在下面的表格中一样。菜单中的空白区域似乎等于最多50个状态,我在这些字段中没有显示任何文本。我错过了什么?我在这个网站上已经尝试了几种不同的方式,但结果却相同。

以下是HTML和PHP的一部分:

<html>
<body>
<form>

<!-- Drop Down set up for Database -->
<select name = "state">
<option value ="default">Select a State</option>

<!-- Retrieve Data from Database -->
<?php
 $db=pg_connect("dbname=etc..");
 $query = "select state_name";
 $query .= " from state_t";
 $query .= " order by state_name";
 $dbResult = pg_query($query);

 if (!$dbResult)
 {
  die("Database error...");
 }

 $num = pg_num_rows($dbResult);
 if ($num == 0)
 {
  echo '<tr><td colspan="2">';
  echo 'Database Query Retrieved Nothing!</td></tr>';
 }
  while ($num = pg_fetch_array($dbResult))
 {
  $state_name = pg_Result($dbResult,'state_name');
  echo '<option value="$num[$state_name]"</option>';
 }
?>
</select>

</form>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

因为语法错误?

尝试:

while ($num = pg_fetch_array($dbResult))
{
   $state_name = pg_Result($dbResult,'state_name');
   echo '<option value="$num[$state_name]">' . $num[$state_name] . '</option>';
}

答案 1 :(得分:0)

选择框本身的基本语法错误

语法是

 <select>
    <option value="a"> A </option>
 <select>

其中a =如果选择此选项,您希望从此选项中获取的值,       A =要显示给用户的值

所以你的编码应该是

 while ($fet = pg_fetch_array($dbResult))
 {
      echo "<option value='$fet[state_name]'>".$fet['state_name']."</option>";
 }

其中state_name是表中状态的字段名称

答案 2 :(得分:0)

您可以尝试:

echo '<option value="$num["$state_name"]" > $num["$state_name"] </option>';

而不是:

echo '<option value="$num[$state_name]"</option>';