2011-09-12 39 views
0

我正在使用mysqli查詢數據庫表以獲取下拉列表的值。但是,我也想檢索相應的描述並將其加載到選項文本中。我的查詢如下:如何從MySQL填充下拉列表的文本和值?

<?php 
$query=('SELECT restaurantid,location from restaurant'); 
$result = mysqli_query($mysqli,$query); 
echo '<select name="ddlStore">'; 
while($row=$mysqli->fetch_array($result)) 
{ 
    echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">'; 
    '</option>'; 
} 
echo '</select>'; 
?> 

如何修改上述內容以便位置字段填充到下拉列表的選項文本中?

更新代碼:

<?php 
$query=('SELECT restaurantid,location from restaurant'); 
$result = mysqli_query($mysqli,$query); 
echo '<select name="ddlStore">'; 
while($row=$mysqli->fetch_array($result)) 
{ 
    echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">' . 
    htmlspecialchars($row['location']) . 
    '</option>'; 
} 
echo '</select>'; 
?> 

上面仍然不顯示位置作爲下拉列表選項的文本值。

更新#2: 查看頁面時,下拉列表不顯示數據庫表中的值。使用IE瀏覽器開發者工具,我看到一個腳本錯誤while語句:

Call to undefined method mysqli::fetch_array() 

是否有結構mysqli_fetch_array語句更好的方法?

+0

感謝@Herbert。 – 65Fbef05

+0

@ 65Fbef05:只是在做我的公民義務。 :) – Herbert

+0

非常感謝赫伯特:) – SidC

回答

0

更改爲...

echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">' . htmlspecialchars($row['location']) . '</option>'; 
+0

你的意思是''在最後? – Herbert

+0

最後,我正在關閉while語句中的 SidC

+0

@Herbert,@SidC - 對不起 - 我的意思是關閉'option'標籤而不是'select'標籤。我的錯。 :P – 65Fbef05

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

但是到目前爲止,您嘗試過什麼?

-1

嘗試這種方式(more info here

$result = $mysqli->query($query) 

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

}