Q:

Как вывести категории с бд - PHP

Есть HTML код и таблица (category) из 15 brand и id. Как грамотно вывести данные в теги li где li=сектор 1? Каждые 5 наименований относятся разным разделом. Пример по id, Вещи от 1-5, Для дома 6-11 и Хобби от 11-15. 
Главное. Чтобы потом когда я буду делать Подачу объявления, с таким же запросом мог эти значения брендов спокойно передавать в бд в другую таблицу. И я мог бы перехватывать эти значения, для того чтобы выводить товар по категориям. Вроде понятно объяснил

<li><a id="index1"><img src="http://www.cyberforum.ru/images/things.png" id="things-images">Вещи</a>
<ul class="category-section">
<li><a href=""><strong>Все вещи</strong></a></li>
<li><a>сектор 1</a></li>               
</ul>         
</li>
<li><a id="index2"><img src="http://www.cyberforum.ru/images/for_home.png" id="home-images">Для  дома</a>
<ul class="category-section">
<li><a href=""><strong>Все для дома</strong></a></li>
<li><a>сектор 1</a></li>                
</ul>         
</li>
<li><a id="index3"><img src="http://www.cyberforum.ru/images/hobby.png" id="hobby-images">Хобби</a>
<ul class="category-section">
<li><a href=""><strong>Все для хобби</strong></a></li>
<li><a>сектор 1</a></li>                
</ul>         
</li>

category

A:

Такая архитектура базы данных никуда не годится. Но если уже начал, и не хочется переделывать, тогда добав еще один столбец в таблицу категорий, например category_type, после id. Либо VARCHAR и указывать название словом, либо INT и указывать номер этого типа. Потом, чтобы не заморачиваться, делаешь простейший запрос на выборку, получаешь все данные. Потом проходишься циклом и группируешь по этому category_id в новый массив. Как то так. 
А вот на странице где этот список выводится, список выводишь цыклом:
<?php foreach($categoryArr as $category): ?>
    <ul class="category-section">
        <li> <?= $category['name'] ?>
    </ul>
<?php endforeach; ?>

Упрощено, конечно, но должно быть понятно)
UPDATE Добавил примерные таблицы, и немного кода, работоспособность не проверял, но кажется всё должно работать. Если что, исправлю.
Групы категорий
"CREATE TABLE `category_group` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `title` VARCHAR(55) NOT NULL,
    `deleted` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB";

id - уникальный идентификатор
title - название группы (для админ панели, если такая будет, все ради удобства)
deleted - если надо удалить категорию, принимает значения 0 и 1
Таблицы категорий
"CREATE TABLE `category` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `group_id` INT(11) NOT NULL,
    `url` VARCHAR(255) NOT NULL,
    `title` VARCHAR(35) NOT NULL,
    `meta_title` VARCHAR(35) NOT NULL, 
    `meta_description` TEXT NOT NULL,
    `meta_keywords` TEXT NOT NULL,
    `hidden` INT(11) NOT NULL DEFAULT '0',
    `deleted` INT(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB";

id - уникальный идентификатор
group_id - идентификатор для групы, іd берется из таблицы 'category_group'
url - адрес каждой категории
title - название категории (еще выводится в теге TITLE)
meta_title - заголовок (мета-данных)
meta_description - описание (мета-данные)
meta_keywords - ключевые слова (мета-данные)
hidden - если надо будет скрыть категорию, принимает значения 0(показано) и 1(скрыто)
deleted - если надо удалить категорию, принимает значения 0(актуальная) и 1(удалена)
Теперь работа с БД:
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die(mysqli_error($link));
$group_query = "SELECT * FROM category_group WHERE deleted = 0";
$res = mysqli_query($link, $group_query) or die(mysqli_error($link));

while ($row = mysqli_fetch_assoc($res))
    $groupTemp[] = $row;

$category_query = "SELECT * FROM category WHERE visible=0 AND deleted=0";
$res = mysqli_query($link, $category_query) or die(mysqli_error($link));

while ($row = mysqli_fetch_assoc($res))
    $categoryTemp[] = $row;

Теперь делаем из двух массивов один
for ($i = 0; $i < count($groupTemp); $i++) {
    for ($o = 0; $o < count($categoryTemp); $o++)
        if ($groupTemp[$i]['id'] == $categoryTemp[$i]['group_id']) {
            $categoryByGroup[$groupTemp[$i]['title']]['group_title'] = $groupTemp[$i]['title'];
            $categoryByGroup[$groupTemp[$i]['title']][] = $categoryTemp[$i];
        }
}

И наконец-то вывод: 
<? foreach ($categoryByGroup as $group): ?>
    <ul class="category-section">
      <?php foreach ($group as $category): ?>
      <li><a href="<?= $category['url'] ?>"> <?= $category['title'] ?> </a></li>
      <?php endforeach; ?>
    </ul>
<? endforeach; ?>

