Мне нужна небольшая помощь в решении простой проблемы с SQL / PHP. У меня есть список задач, хранящихся в таблице, а затем категории для задач в таблице tasks_categories. Существует внешний ключ categoryID, связывающий две таблицы.
Что я хотел бы сделать - это перечислить первую категорию, а затем все задачи. Затем перечислите вторую категорию и эти задачи. В настоящее время у меня просто есть список задач в древовидном формате.
Как бы я изменил свой код (вставленный ниже), чтобы он отображал название категории один раз, затем его задачи, затем следующую категорию и т. Д.
$query = mysqli_query($mysqli,'SELECT * FROM tasks join tasks_categories using (categoryID)');
while ($row = mysqli_fetch_assoc($query)) {
$menu_array[$row['taskID']] = array(
'taskName' => $row['taskName'],
'parentID' => $row['parentID'],
'categoryName' => $row['categoryName'],
'required' => $row['required']
);
}
function generate_menu($parentID)
{
global $menu_array;
$has_child = false;
foreach($menu_array as $key => $value) {
if ($value['parentID'] == $parentID) {
if ($has_child === false) {
$has_child = true;
echo '<ul>';
}
echo '<li>' . $value['taskName'];
if ($value['required'] == 1) {
echo '<span class="required">*</span>';
}
generate_menu($key);
echo '</li>';
}
}
if ($has_child === true) echo '</ul>';
}
generate_menu(0);