动态下拉列表未显示字符串

时间:2016-03-01 16:01:22

标签: php html postgresql

我是PHP的新手,我试图从PostgreSQL查询中创建一个动态下拉列表。基本上,脚本会询问我的数据库存在哪些课程(学校课程),然后创建所有可用课程的下拉列表。

它连接到数据库并检索正确的值(我自己确认了这一点),但是当我打开下拉列表时它们显示为空字符串。甚至比较简单的是,如果数据库包含两个课程,则下拉列表中将有两个空字段可供选择,如果有三个,则列表中还有三个空字段可供选择。 / p>

这是我的代码:

<html>
<body>
The user interface for <?php echo $_POST["name"]; ?><br>

<?php
// Connecting, selecting database
$dbconn = pg_connect("host=*** dbname=*** user=*** password=***")
    or die('Could not connect: ' . pg_last_error());

// Query for Course Information (for the drop-down box)
$query = 'SELECT * FROM courseinformation';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());

// Initialize the drop-down list (html-code)
echo "<p>Drop-down list:</p><br>";
echo "<select name=\"formCourse\">";
echo "    <option value=\"\">Select Course</option>";

// Create the items in the drop-down list
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "<option value=\"foo\">$line[0]</option>";
}

// End the drop-down list
echo "</select>";
echo "</p>";

// Free resultset
pg_free_result($result);

// Closing connection
pg_close($dbconn);
?>

</body>
</html>

这是一张它看起来像的照片: What it looks like

要求$line而不是$line[0]会产生以下结果: enter image description here

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您通过传递PGSQL_ASSOC标志来获取结果。这意味着您的结果不会被数字化索引,例如$ line [0],但它们将是一个关联数组,其数组键与您的postgres列标题相匹配。所以也许$ line [&#39; courseTitle&#39;]。