2015-12-23 148 views
0

我一直在試圖從postgresql表格中的一列中填充html表單。由於我對此很陌生,所以我一直無法使其工作。我有一些代碼,我一直在嘗試學習並開始工作。我希望將Circuit列中的值顯示在下拉列表中。下拉框顯示出來,但是當點擊展開並顯示值時什麼也沒有顯示出來。下面是表格結構,後面跟着我一直在處理的代碼。此外,我沒有收到來自數據庫連接的任何錯誤。任何幫助將不勝感激。從PostgreSQL中填充下拉列表

表舉例:

Table Example

代碼:

<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

如果你運行var_dump($ sql),你會得到什麼?死;在你的pg_query調用之後? –

+0

我沒有收到任何錯誤。它的行爲就像PHP甚至沒有運行一樣。 – jmoore3274

+0

您的主機是否包含您的示例中的「http://」?在這種情況下,腳本可能會崩潰,並且打印錯誤。這就是爲什麼你看不到致命的錯誤。 –

回答

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()來做它也不會做到這一點 - 準備好的語句會更合適。

+0

我將$ db添加到查詢,我仍然沒有得到任何錯誤,我的下拉列表仍然沒有填充。 – jmoore3274

+0

我忽略了標籤之間的描述。我現在修改後的答案是否適用於您? –