@noire_night

Не правильно работает цикл в php, в чем проблема?

Делаю цикл вывода из бд, в ней есть таблицы категории предметов и предметы. Задача состоит в том, что нужно вывести
предмет в его категорию которая выбрана у него в бд.

Сейчас цикл выводит только предметы первой категории, не могу понять почему не выводятся предметы во вторую категорию.

Если убрать цикл foreach, то выведется все правильно, но по 1 предмету в каждую категорию

Вот цикл
while($row_category = $category->fetch(PDO::FETCH_ASSOC))
{
?>
      <div class="list-group">
        <ul class="list-group-flush">
        <h6><?php echo $row_category['name_category'] ?></h6>
        
        <?php

        $program_all = $program->fetchAll();
        $row_program = $program->fetch(PDO::FETCH_ASSOC);
        foreach ($program_all as $row_program) 
        {
        	if( $row_program['id_category'] == $row_category['id_category']) 
            	{
              		echo " <a href='../modules/page.php?id=$row_program[id_program]'><li class='cat-item m-1'> $row_program[name_program] </li></a>";
          		}
        } 
?>

        </ul>
      </div>
<?php
}
?>
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
Softer
@Softer
Во-первых - стоит подучить SQL-запросы вида:
SELECT * FROM `programs` WHERE `id_category` = :cat_id

не стоит на каждую категорию забирать все позиции.
Во-вторых цикл нужен while
В-третьих: в UL ничего кроме LI не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы