从postgresql数据库填充php下拉框

时间:2013-03-28 10:25:14

标签: php forms postgresql drop-down-menu

我需要使用诸如SELECT title FROM books WHERE ownedBy = [users facebook ID]之类的查询从我的postgreSQL数据库填充书名的下拉列表,然后使用用户的选择来显示其余的信息。那本书。该页面是一个Facebook应用程序,这就是我获取Facebook ID的方式。

到目前为止,这是代码的相关部分,主要是根据我发现的类似问题的各种答案创建的。

<form action="updateform.php" method="post">
<select name="booktitle" id="booktitle">
<option>Select book</option>
<?php
$db = pg_connect("host=ec2-54-243-190-226.compute-1.amazonaws.com port=5432 dbname=d6fh4g6l0l6gvb    user=zmqygfamcyvhsb password=1Apld4ivMXSK8JZ_8yL7FwIuuz sslmode=require options='--client_encoding=UTF8'") or   die('Could not connect: ' . pg_last_error());
$sql = pg_query("SELECT title FROM books WHERE ownedby='$user_id'";
while ($row = pg_fetch_assoc($sql)) {
echo '<option value="'.htmlspecialchars($row['title']).'"></option>';}
pg_close($db);
?>
</select>
<input type="hidden" name="userid" id="userid" value="<?php echo htmlspecialchars($user_id); ?>">
//other form elements here
</form>

更新:我没有关闭隐藏字段,因此似乎可以修复错误,而不会显示错误。下拉列表未填充,但我在服务器日志中没有收到任何错误。

如果有人可以帮助我让下拉框部分工作,那将是很好的,现在,一旦这部分工作,我将努力找出其余部分。

2 个答案:

答案 0 :(得分:2)

你应该写

$sql = pg_query($db, "SELECT title FROM books WHERE ownedby='$user_id'");

此外,必须指定选项中显示的名称。

echo '<option value="'.htmlspecialchars($row['title']).'">'.htmlspecialchars($row['title']).'</option>';

答案 1 :(得分:0)

查询中的

'$ user_id'为空。首先仔细检查'$ user_id'的值。那就行了。