@DonateCMS
Web Developer

Не могу сформировать foreach с 2 запросами?

Здравствуйте, пользователи! Не могли бы Вы помочь мне решить проблему? Не пойму ее решения.
Я сделал простенький вывод из базы данных по id, но "optgroup" у меня стоит свой. Крч как пример:
<optgroup label="Услуги:">
      <?php
         $mysqli = new mysqli($host, $user, $db_pass, $db);
         $mysqli->query ("SET NAMES 'utf8'");
         $priv = $mysqli->query ("SELECT * FROM `products` WHERE `cat`='1' ORDER BY `id` ASC");

              while($row = $priv->fetch_assoc()){
               	$id = $row["id"];
               	$name = $row["name"];
               	$price = $row["price"];
                echo "<option value='$id'> $name - $price Рублей</option>";
              }
								?>
</optgroup>

И вот так вот с каждой группой. А мне нужно чтобы выводило сразу с "optgroup" и с ее названием из таблицы категорий.
5d6430f9bbe03818056940.png
Таблица товаров "products" сортирует по cat_id, id. А сами категории в таблице "category" по id.
Поможете?
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 1
ematveev
@ematveev
PHP разработчик / руководитель / писатель
например можно так сделать:
1) в запросе добавить первичную сортировку по категории ORDER BY `cat_id` ASC, `id` ASC
2) в цикле foreach перед выводом опции сравнивать текущую значение cat_id с сохранённой в переменной предыдущим значением, а если они разные, то значит началась следующая группа, а значит надо вывести optgroup и сохранять новое значение cat_id в переменную
Ответ написан
Ваш ответ на вопрос

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

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