Как сделать правильно группировку под группами из базы?

У меня вот делема, мне нужно сделать группировку., я не знаю как правильно это обозначается
Вот имеется информация в моей базе
66c28d440961f909496594.png

Мне нужно чтобы на сайте было такое построение
66c28d690090c751038264.jpeg

Сразу скажу я делаю под версию php5:)
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 2
@historydev
Ищу толкового кодера для разработки игр на расте
- Цветы, животные и птицы - это категории.
- Розы, ромашки, коровы это значения которые нужно делить по категориям.

Непонятно что ты имеешь ввиду под группировкой.
Прочти: 3.2
Ответ написан
@alexalexes
То, что вы хотите получить можно сделать таким запросом:
select S.*,
     (select S1.location from services S1 where S1.main = S.main and (S1.list is null or S1.list = '')) head_index
from services S
order by head_index, S.list is null or S.list = '' desc, S.location is null or S.location = '' desc, S.location

А потом вывести таким скриптом:
$sql = "select S.*,
     (select S1.location from services S1 where S1.main = S.main and (S1.list is null or S1.list = '')) head_index
from services S
order by head_index, S.list is null or S.list = '' desc, S.location is null or S.location = '' desc, S.location";
$res = mysqli_query($conn, $sql);
$cat_index = 0;
while($row = msqli_fetch_assoc($res))
{
  if(is_null($row['list']))
  {
    if($cat_index > 0)
      echo '</ul>';  // закрытие списка
    echo '<p>'.$row['main'].'</p><ul>'; // название категории, начало списка
    $cat_index++; // считаем категорию, чтобы правильно закрывать списковые теги
  }
  else
  {
    echo '<li>'.$row['list'].'</li>';
  }
}
if($cat_index > 0)
  echo '</ul>'; // закрытие списка

А вообще, многоуровневые списки делаются по-другому.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы