2014-12-21 41 views
0

嘿,夥計們,我被困在這個問題上。我想要做的是從MYSQL中檢索一些數據並將其存儲在選項標籤中。這是我的代碼。從Mysql中檢索數據並將其存儲在選項html標記中

<?php 
$user = "admin"; 
$password = ""; 
$db = "test"; 
$host = "localhost"; 
$cxn = mysqli_connect($host, $user, $password, $db); 

$query = "SELECT ARTIST FROM music"; 
$results = mysqli_query($cxn, $query) or die("Connection could not be established"); 

echo "<select name='mediaType'>"; 
while ($row = mysqli_fetch_assoc($results)) 
{ 
    extract($row); 
    echo "<option value=''>$row</option>\n";           
} 
echo "</select>"; 
?> 

執行此功能後,option標籤中的輸出對於select元素中的所有選項都是「Array」。我嘗試將php變量$行中的數據存儲到數組中,然後循環拋出該數組並將數組中的每個索引進行回顯,但結果相同。有人可能會爲我提供一些關於這個問題的指導。感謝所有的幫助。

+0

你爲什麼使用'extract()'? –

+0

好吧,我想從列藝術家的所有數據。除此之外沒有特別的理由。有沒有更好的辦法。請記住,我是一個PHP的新手。 – meddy

+0

$ row是一個數組。你必須寫下:$ row [「id」]或$ row [columnname](其中列名稱是你在dzatabase中的字段名稱)對於你想要顯示的每個值 – scraaappy

回答

0

爲什麼不能簡單地做:

echo "<select name='mediaType'>"; 
while ($row = mysqli_fetch_assoc($results)) 
{ 
    echo "<option value='".$row['ARTIST']."'>".$row['ARTIST']."</option>"; 
} 
echo "</select>"; 
+0

感謝您的洞察力 – meddy

1

每其他用戶,extract()是不是你想要的這裏。 $row是一個數組,其中的鍵是您的列名。使用類似如下:

while ($row = mysqli_fetch_assoc($result)) { 
    echo '<option value="">'.$row['ARTIST'].'</option>'; 
} 

請注意我是如何更改引號的;數組運算符在雙引號字符串中不起作用。

而在未來,要檢查變量的內容,請使用var_dump()來查看,這對於查看幕後發生的事情非常有用。

編輯:哦,如果你的表有一個數字主鍵ID,你應該使用它作爲你的選擇的值,以防止改變名稱或人爲輸入錯別字。

+0

需要感謝您的洞察力 – meddy

+0

請注意,value屬性仍爲空。發佈表單時它會發送空值。 –

相關問題