2016-06-22 9 views
0

私は "コード"と "グループ"のリストを持つテーブルを持っています。 optgroupを使ってグループ化された "コード"を持つ選択ボックスを動的に作成できるようにする必要があります。私は、いくつかのソリューションをオンラインで運命づけしようとしましたが、運はありません。PHP mySQL選択グループOptgroups

TABLE INFO:

CREATE TABLE `dtcodes` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`groups` varchar(30) NOT NULL, 
`code` varchar(5) NOT NULL, 
`name` varchar(40) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1 

groups|codes|name 
----------------------- 
Materials|M1|No Product 
Materials|M2|Low Brix 
Other Equipment|AV1|Test1 
Other Equipment|AV2|Test2 

PHPのmysqliの:

$sqlcodes = "SELECT * FROM dtcodes ORDER BY groups ASC"; 
    $resultcodes = mysqli_query($con, $sqlcodes); 

終わりに私の目標は、このようなものになるだろう。

<select> 
    <optgroup label="Materials"> 
     <option value="M1">No Product</option> 
     <option value="M2">Low Brix</option> 
    </optgroup> 
    <optgroup label="Other Equipment"> 
     <option value="AV1">Test1</option> 
     <option value="AV2">Test2</option> 
    </optgroup> 

答えて

0

投稿する前に20分待ってください。

echo "<td><select class='form-control'>"; 
echo "<option>Select a code...</option>"; 
if ($resultcodes->num_rows > 0) { 
while($row = $resultcodes->fetch_assoc()) { 
    $group[$row['groups']][] = $row; 
} 
foreach ($group as $key => $values){ 
    echo '<optgroup label="'.$key.'">'; 
    foreach ($values as $value) 
    { 
     echo '<option value="'.$value['code'].'">'.$value['name'].'</option>'; 
    } 
    echo '</optgroup>'; 
} 
} else {} 
echo "</select></td>";