Есть две таблицы:
1. Категории
sql создания таблицы Категории
CREATE TABLE `categories` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL DEFAULT 'unnamed',
`icon` VARCHAR(100) NOT NULL DEFAULT 'icon',
PRIMARY KEY (`id`),
UNIQUE INDEX `Индекс 2` (`title`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
;
2. Подкатегории (имеют внешний ключ на категории)
sql создания таблицы Подкатегории
CREATE TABLE `subcategories` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL DEFAULT 'unnamed',
`category_id` INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `id` (`category_id`),
CONSTRAINT `id` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
PHP код который есть сейчас (Работает, выводит только категории):
index.php
<?php
require_once 'init.php';
if (!$link) {
$error = mysqli_connect_error();
$content = include_template('error.php', ['error' => $error]);
}
else {
$sql = 'SELECT * FROM categories';
$result = mysqli_query($link, $sql);
if ($result) {
$categories = mysqli_fetch_all($result, MYSQLI_ASSOC);
$content = include_template('main.php', ['categories' => $categories]);
}
else {
$error = mysqli_error($link);
$content = include_template('error.php', ['error' => $error]);
}
}
print(include_template('layout.php', ['content' => $content]));
Как, и в каком месте кода будет правильней реализовать вывод категорий, и её подкатегорий (при условии что они могут отсутствовать)?