2012-01-10 5 views
0

このように配列を取得するのに問題があります。クエリから配列を分割する

$womensLevels = array('WEXHIB' => 'Exhib Camp/Test', 'WLEVEL01' => 'Level 1', 'WLEVEL02' => 'Level 2', 'WLEVEL03' => 'Level 3', 'WLEVEL04' => 'Level 4', 'WLEVEL05' => 'Level 5', 'WLEVEL06' => 'Level 6', 'WLEVEL07' => 'Level 7', 'WLEVEL08' => 'Level 8', 'WLEVEL09' => 'Level 9', 'WLEVEL10' => 'Level 10', 'WOPEN' => 'Open', 'WPREPOPT' => 'Prep OPT', 'WTOPS' => 'TOPS'); 

私のクエリを実行して私のビュー(html)にドロップすると、このようになります。私はちょうどそこにCodeキーとDescriptionキーが表示されるようにしたい。

[0]=> 
    array(2) { 
    ["Code"]=> 
    string(4) "IW01" 
    ["Description"]=> 
    string(13) "Intro Level 1" 
    } 
    [1]=> 
    array(2) { 
    ["Code"]=> 
    string(4) "IW02" 
    ["Description"]=> 
    string(13) "Intro Level 2" 
    } 
    [2]=> 
    array(2) { 
    ["Code"]=> 
    string(4) "IW03" 
    ["Description"]=> 
    string(13) "Intro Level 3" 
    } 

ここに私の質問があります。

これは配列の元です。

$womensLevels = sprintf("SELECT `Code`,`Description` FROM `mb_ro_type_codes` where `Program` = '%s'", $sanction->Program); 

$smarty->assign('womensLevels', $db->query($womensLevels)); 

ここに私の変数を私のコントローラから入れました。

{html_checkboxes name='code' options=$womensLevels selected=$checked} 

私の考えているのは、私のアレイを故障させる方法です。

答えて

2

クエリ結果をテンプレートに直接渡すのではなく、dbクエリー結果をループし、必要な形式で別の配列を作成する必要があります。このようなもの:

$results = $db->query($womensLevels); 
$formattedResults = array(); 
foreach($results as $result) { 
    formattedResults[$result['Code']] = $result['Description']; 
} 
$smarty->assign('womensLevels', $formattedResults); 
+0

これは正解です。ありがとうございました! :) – wowzuzz