2012-04-20 38 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