PHP / Postgresql问题填充带有db内容的下拉列表

时间:2013-12-30 17:58:19

标签: php html postgresql html-select

我看了几个例子,虽然似乎都没有用,我打算从PostgreSQL数据库中的表中填充一个下拉框,我做了相反的事情,虽然它更复杂。
现在我有以下内容:(已尝试过不同的方式)

...
<ul>
  <form name="display" action="" method="post">  
  <label>Select a terminal profile:</label>
  <select name='ddlTerminalProfiles'>
     <option>choose...<option/>
       <?php
        #DB Connection
        $con_string= "host=localhost port=1234 dbname=myDB user=myUser password=myPass";
        $db_con = pg_connect($con_string);              
        #Query for profiles
        $result=pg_query($dbcon, "SELECT * FROM profiles"); 
        while ($row = pg_fetch_array($result))
        {
           ?>
           <option value="<? echo $row['profile_name'];?>"><?echo $row['profile_name'];?></option>                                      
<?
}
?>
</select>
<br/>
...

连接很好,数据库中的数据也是如此。 还尝试使用if(isset($_POST['REFRESH']))...添加刷新按钮进行触发。没有运气。

1 个答案:

答案 0 :(得分:0)

在此代码中

   <?php
    #DB Connection
    $con_string= "host=localhost port=1234 dbname=myDB user=myUser password=myPass";
    $db_con = pg_connect($con_string);              

pg_connect()设置$ db_con的值。但是这段代码

    #Query for profiles
    $result=pg_query($dbcon, "SELECT * FROM profiles");

不使用$ db_con。它使用$ dbcon。

每个函数的PHP文档都会告诉您在出现错误时返回的内容。如果函数可以返回某种错误状态,则需要查找它。

$db_con = pg_connect($con_string);
if (!$db_con) {
  echo "pg_connect failed.", PHP_EOL;
}

pg_query()和pg_fetch_array()也会返回错误状态。

字符串连接代码更容易逐个构建。从

开始
echo "<option></option>", PHP_EOL;
那应该是显而易见的;没有连接。添加引号。没有逃脱报价是经常出错的原因。

echo "<option value=\"\"></option>", PHP_EOL;

使用大括号语法添加行值。

echo "<option value=\"{$row['profile_name']}\">{$row['profile_name']}</option>", PHP_EOL;