我一直在尝试获取从postgresql表中的列填充的html表单的下拉列表。因为我对此很陌生,所以我无法让它发挥作用。我有一些代码,我一直在努力学习并开始工作。我想让电路列中的值显示在下拉列表中。下拉框显示,但单击以展开并显示值不显示任何内容。下面是表格结构,后面是我一直在摆弄的代码。此外,我没有从数据库连接收到任何错误。任何帮助将不胜感激。
表示例:
代码:
<div class="form-group">
<select name="circuit-id-dropdown">
<?php
$db = pg_connect("host=[Deleted] port=5432 dbname=PECO user=postgres password=[Deleted]")
//or die('Could not connect: ' . pg_last_error());
$sql = pg_query(sprintf("SELECT Circuit FROM CIRCUIT_INFO"));
var_dump($sql);
die;
while ($column = pg_fetch_assoc($sql)) {echo '<option value="'.htmlspecialchars($column['Circuit']).'"></option>';}
pg_close($db);
?>
</select>
</div>
答案 0 :(得分:1)
你的pg_query()命令看起来不正确。试试这个:
$db = pg_connect("host=[Deleted] port=5432 dbname=PECO user=postgres password=[Deleted]") or die('Could not connect: ' . pg_last_error());
$sql = pg_query($db, "SELECT Circuit FROM CIRCUIT_INFO"));
while ($column = pg_fetch_assoc($sql)) {
$circuit = htmlspecialchars($column['Circuit']);
printf('<option value="%1$s">%1$s</option>', $circuit);
}
pg_close($db);
pg_query的第一个参数需要是连接对象($ db)。此外,sprintf()并不是必需的,因为您的SQL只是一个简单的字符串。即使您在SQL中包含可变数据,通过sprintf()执行也不是这样做的方法 - 准备好的语句会更合适。