我是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>
出了什么问题?
答案 0 :(得分:1)
您通过传递PGSQL_ASSOC标志来获取结果。这意味着您的结果不会被数字化索引,例如$ line [0],但它们将是一个关联数组,其数组键与您的postgres列标题相匹配。所以也许$ line [&#39; courseTitle&#39;]。