我需要从我的postgreSQL数据库中使用诸如SELECT title FROM books WHERE ownedBy = [users facebook ID]的查询来填充书名的下拉列表,然后使用用户的选择显示该书的其他信息。该页面是一个Facebook应用程序,这是我如何获得Facebook的ID。从postgresql数据库填充php下拉框
这是迄今为止的代码部分,主要是从我发现的类似问题的各种回答中创建的。
<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>
更新:我没有关闭的隐藏字段,这样似乎解决它是显示不出来的错误。下拉列表不填充,但我没有收到服务器日志中的任何错误。
如果任何人都可以帮我拿到下拉框部分的工作,那现在会很棒,一旦这部分工作,我就会努力找出其他问题。
SQL肯定会返回传回的user_id的行吗? – d1ll1nger 2013-03-28 11:00:38
@DaleBetts当我直接在数据库上运行'SELECT title FROM books WHERE ownedby = [my facebook id];'时,它确实会返回值,但我不知道如何测试PHP是否成功检索它们。编辑:它目前在下拉框中显示正确的行数,但没有文字) – TheMarron 2013-03-28 11:47:11