2012-04-20 72 views
1

我想努力,從數據庫中獲取結果顯示爲下拉列表。php mysql顯示結果作爲下拉列表

基本上我正在提取外鍵,唯一代碼和它的名稱/標題。我需要顯示它作爲一個下拉列表,要正確輸入到一個新表

 $sql = "SELECT quali_code, title FROM `qualifications` "; 
    $result = mysql_query($sql, $this->connection); 
    $result_array = array(); 
    while($r=mysql_fetch_array($result)) 
    { 
    $result_array[$r['quali_code']][] = $r; 
    } 
    return $result_array; 

有了,我需要在HTML創建一個下拉列表/ PHP選擇從標題,但顯然存儲價值。 <list name=array[title] value=array[code] >

目前我已經停止將我的SQl結果返回到適用於我的數組中,並且不知道如何使用正確的數組結果填充下拉列表。

上面的示例代碼在我的陣列看起來像我如何獲取SQL結果,並在這裏:

Array ([AAT] => Array ([0] => Array ([0] => AAT [quali_code] => AAT [1] => AAT qualification [title] => AAT qualification)) [A_lev] => Array ([0] => Array ([0] => A_lev [quali_code] => A_lev [1] => A levels [title] => A levels)) [HNC] => Array ([0] => Array ([0] => HNC [quali_code] => HNC [1] => Fdsc/HNC [title] => Fdsc/HNC)) [Lan_ISLT] => Array ([0] => Array ([0] => Lan_ISLT [quali_code] => Lan_ISLT [1] => EISLT Qualification [title] => EISLT Qualification)) [Lan_qua] => Array ([0] => Array ([0] => Lan_qua [quali_code] => Lan_qua [1] => Language qualification [title] => Language qualification)) [Nat_Dip] => Array ([0] => Array ([0] => Nat_Dip [quali_code] => Nat_Dip [1] => National Diploma [title] => National Diploma))) 

裸記住我全新到PHP。任何幫助,將不勝感激。但是這個數組對我來說看起來毫無用處,我不知道如何填充列表。我獲取結果/數組的文件不是將數組填充到列表中的位置。

非常感謝對此事

+3

請停止使用古老的'mysql_ *'函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://news.php.net/php.internals/53799)。相反,您應該瞭解[準備好的陳述](http://en.wikipedia.org/wiki/Prepared_statement)並使用[PDO](http://php.net/pdo)或[MySQLi](http:// php.net/mysql)。如果你關心學習,[這裏](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)是一個相當不錯的PDO相關教程。 – 2012-04-20 19:23:44

+0

thx對於這一點,我會在我完成這個項目後去查看一下。在很大的時間壓力下。例如,這個陳述看起來像什麼? – 2012-04-20 19:26:18

回答

3

假設你正在試圖做的是這些行呼應成下拉列表中所有任何提示:

$sql = "SELECT quali_code, title FROM `qualifications` ORDER BY title "; 
$result = mysql_query($sql, $this->connection); 
while($r=mysql_fetch_array($result)) 
{ 
$quali_code = $r['quali_code']; 
$result_array[$quali_code][] = $r['title']; 
} 


echo "<select name='x'>"; 
foreach($result_array as $q_code => $value) 
{ 
    foreach($value as $title) { 
    echo "<option value='" . $q_code . "'>" . $title . "</option>"; 
    } 
} 
echo "</select>"; 
+0

任何想法如何在打印到列表之前返回維數組?我的數據庫連接功能,是在不同的文件tyhan我將使用它的文件! – 2012-04-20 19:52:27

+0

所以我首先需要創建一個我可以使用的數組,然後將它傳遞給另一個文件,然後將它們作爲列表打印出來 – 2012-04-20 19:52:55

+0

@Alexander Grosse請參閱編輯 – squarephoenix 2012-04-20 19:56:08

1

它已經一段時間,因爲我使用PHP,但,我記得這是我從MySQL查詢中打印出列的方式。在while循環中使用$ r [「columnName」]。可能有語義錯誤,但這應該給你一個很好的主意。

echo "<select>"; 
while($r = mysql_fetch_array($result)) 
{ 
    echo "<option value=\".$r['quali_code'].\">.$r['title'].</option>"; 
} 
echo "</select>"; 

我用http://www.tizag.com/phpT/來自學PHP。他們有很多很棒的教程。這裏是關於Tizag的MySQL/PHP教程的鏈接:http://www.tizag.com/mysqlTutorial/

快樂編碼。

+0

thx爲答案和鏈接!真的很感激,我會在高清場景中透過網站去看看! – 2012-04-20 20:42:54