私が望むのは、mysql 結果列の新しい値ごとに新しい順不同リストを作成することです。
私のクエリは次のようになり、データ配列に投げています:
$connection = dbconnect();
$getusers = "SELECT users.usr_id, users.usr_firstname, users.usr_lastname, user_groups.group_name FROM users INNER JOIN user_groups ON users.usr_group = user_groups.group_id ORDER BY group_name ASC, users.usr_firstname ASC, users.usr_lastname ASC";
$result = mysql_query($getusers);
$data_array = array();
while($data = mysql_fetch_array($result)){
$data_array[] = $data;
}
次に、そのデータを表示して、新しい各 user_group が順序なしリストになり、同じグループを持つ各行がその順序なしリストのリスト項目として表示されるようにする必要があります。
この質問 ( PHP/MySQL Query Results )と非常によく似ていますが、適切な場所で ul を閉じるのに問題があります。出力用のコードは次のとおりですが、li は実際には ul の子ではないため、間違っていることはわかっています。
$previousgroup = "";
foreach($data_array as $users){
if($users['group_name'] != $previousgroup){
echo "<ul class=\"group\">" . $users['group_name'] . "</ul>";
}
else{
echo "<li id=\"m" . $users['usr_id'] . "\"><h4>" . $users['usr_firstname'] . " " . $users['usr_lastname'] . ", " . $users['cred_name'] . "</h4></li>";
}
}
これを行うより効率的な方法はありますか?ご協力いただきありがとうございます。