2013-04-15 47 views
0

我有一個2列的表,我正在尋找輸出這些列中的一個到底部的按鈕下拉選擇器列表。我正在使用PDO連接到數據庫,該代碼正在工作,但它只給了我每行所有細節的數組。從mySQL輸出一個PDO請求到一個下拉選擇器列表

<?php 
/* Execute a prepared statement by binding PHP variables */ 
$username = "mydb"; 
$password = "mydb"; 
$member = $_SESSION['SESS_MEMBER_ID']; 
try { 
    $dbh = new PDO('mysql:host=;dbname=mydb', $username, $password); 
    $sth = $dbh->prepare('SELECT list_name FROM lists WHERE member_id = :member_id '); 
    $sth->execute(array('member_id' => $member)); 
    $result = $sth->fetchAll(); 

    if (count($result)) { 
    foreach($result as $row) { 
     print_r($row); 
    } 
    } else { 
    echo "No rows returned."; 
    } 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 
?> 

這是迄今爲止的工作代碼,如何將輸出從數組更改爲選擇器下拉列表中的按鈕?即使滾動框列表會做?

+0

如果你打算做的下一件事是迭代結果,那麼絕對不需要使用'fetchAll()'。刪除'$ result = $ sth-> fetchAll();'並將count($ result)'改爲'$ result-> rowCount()> 0';) – dbf

回答

1

你只是想顯示一個下拉框的查詢結果。 這只是HTML取決於一些變量。 而不是顯示的結果是這樣的:

foreach($result as $row) { 
    print_r($row); 
} 

,你應該這樣用PHP顯示HTML標籤:

print '<select id="your_list">'; 
    foreach ($result as $row) { 
    print '<option value="'.$row['list_name'].'">'.$row['list_name'].'</option>'; 
    } 
print '</select>'; 
print '<input type="submit" value="Submit">'; 

如果你希望能夠提交這份表單並獲取價值,你必須用一個帶有正確選項的表單標籤包圍它。

0

您可以按列名稱訪問數組中的元素,例如$row['list_name']

喜歡的東西:

<select name='x'> 

<?php 
    foreach($result as $row) { 
     echo "<option value='".$row['list_name']."'>".$row['list_name']."</option>"; 
    } 
?> 

</select> 
相關問題