我已经按照其规范将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>
这样每个选项将具有相同的值,字符串'$ num [$ state_name]' – mishu
这是因为“$ state_名称“永远不会改变。您可以通过“$ state_name”从“$ num”中获取值。你可以告诉我你的$ state_name的var_dump吗? – Tyralcori
不,这是因为变量和转义序列没有在单引号之间的字符串中展开。你可以在这里阅读更多关于字符串的信息http://php.net/manual/en/language.types.string.php – mishu