2011-11-05 27 views
15

填充HTML下拉列表作爲我正在創建的HTML表單的一部分我想要一個下拉列表,它將列出數據庫中的所有用戶名。如何使用數據庫中的值

我認爲下面的代碼會做的伎倆,但下拉列表是空的 - 有人可以幫助我在我做錯了什麼?謝謝。

<tr> 
<td>Owner</td> 
<td> 
<select name="owner"> 
<?php 

$sql = mysqli_query($connection, "SELECT username FROM users"); 

while ($row = $sql->fetch_assoc()){ 

?> 
<option value="owner1"><?php echo $row['username']; ?></option> 

<?php 
// close while loop 
} 
?> 
</td> 
</tr> 

回答

21

我的猜測是你有問題,因爲你沒有關閉循環後的選擇標記。這可以做到這一點嗎?

<select name="owner"> 
<?php 
$sql = mysqli_query($connection, "SELECT username FROM users"); 
while ($row = $sql->fetch_assoc()){ 
echo "<option value=\"owner1\">" . $row['username'] . "</option>"; 
} 
?> 
</select> 
+1

添加了一個示例來清理代碼。 –

+0

已將代碼修改爲上述但仍然是同樣的問題 - 我很難過。 – Bernard

+0

@Bernard - 執行print_r($ row)查看該行的全部內容,以確保查詢獲取了「用戶名」列。 – donutdan4114

3

我建議遵循幾個調試步驟。

首先直接對數據庫運行查詢。確認它帶來的結果。即使有這樣簡單的事情,你也可以發現你犯了一個錯誤,或者桌子是空的,或者有些古怪。

如果以上情況正常,則嘗試循環並將$ row的內容直接回顯到HTML中,以查看您在mysql_query中找回的內容 - 查看它是否與您直接在數據庫中獲得的內容匹配。

如果你的數據輸出到頁面上,那麼看看你的HTML格式有什麼問題。

但是,如果沒有從$ row輸出,那麼找出爲什麼mysql_query不工作,例如沒有用戶有權限查詢該數據庫,你有一個開放的數據庫連接,可以將Web服務器連接到數據庫等[在這些線路上的東西往往是一個疑難雜症]

稍微改變您的查詢

$sql = mysql_query("SELECT username FROM users") or die(mysql_error()); 

可能有助於突出任何錯誤:http://php.net/manual/en/function.mysql-error.php

+0

謝謝克里斯這幫我找到了錯誤輸出 – Bernard

8

下面的代碼是不錯..它是由另一個叫 aaronbd在link

<?php 

$conn = new mysqli('localhost', 'username', 'password', 'database') 
or die ('Cannot connect to db'); 

    $result = $conn->query("select id, name from table"); 

    echo "<html>"; 
    echo "<body>"; 
    echo "<select name='id'>"; 

    while ($row = $result->fetch_assoc()) { 

        unset($id, $name); 
        $id = $row['id']; 
        $name = $row['name']; 
        echo '<option value="'.$id.'">'.$name.'</option>'; 

} 

    echo "</select>"; 
    echo "</body>"; 
    echo "</html>"; 
?> 
給出
+0

你能告訴我爲什麼選擇使用「>」嗎?以及它是如何工作的 –

+3

@SmitSaraiya「>」用作標準html語法的選項。 – Imon

2
<select name="owner"> 
<?php 
$sql = mysql_query("SELECT username FROM users"); 
while ($row = mysql_fetch_array($sql)){ 
echo "<option value=\"owner1\">" . $row['username'] . "</option>"; 
} 
?> 
</select> 
+0

如果你添加了一些行解釋你在做什麼,或者你和用戶的解決方案有什麼區別,這不會有什麼壞處。 – nKn

1
<?php 
$query = "select username from users"; 
$res = mysqli_query($connection, $query); 
?> 


<form> 
    <select> 
    <?php 
     while ($row = $res->fetch_assoc()) 
     { 
     echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>'; 
     } 
    ?> 
    </select> 
</form> 
相關問題