Не работает html код в цикле foreach в php

       <?php
    
        $query = $pdo->query('SELECT * FROM `Sportsmen`');

        $items = [];

        while($row = $query->fetch(PDO::FETCH_ASSOC)){
            $items = $row;
        }

        ?>

foreach обернут в цикл "if ( count((array)$query) > 0):", но в нем до foreach все отображается.

                   <tbody class="p-2 d-flex flex-row stroka">
                      
                         <?php echo $items['img_record'];?>     <!-- тут выводит-->
                       
                        <?php foreach($query as  $items): ?>  
                          
                           <?php echo $items['img_record'];?>   <!--а тут не выводит-->
                          
                              <tr>
                             
                              <th class="p-1 img_record">
                               <img src="img/<?php echo $items['img_record'];?>" alt="">
                                </th>
                                
                              <th class="p-2 name">
                                  <?php echo $items['name'];?>
                              </th>
                              
                              <th class="p-2 id_event">
                                  <?php echo $ites['id_event'];?>    
                              </th>
                              
                              <th class="p-2 descr_record">
                                  <?php echo $items['descr_record'];?>    
                              </th>
                              
                              <th class="p-2 time_record">
                                  <?php echo $items['time_record'];?>                              
                              </th> 
                              
                            </tr> 
                            
                         <?php endforeach;?>   
                      </tbody>

Пыталась найти что-то по похожим вопросам, но не нашла((


Ответы (1 шт):

Автор решения: void

Зачем вообще плодить лишнее

$items = $row;

Затем, в 'foreach', у вас аргументы не те.

The foreach loop works only on arrays, and is used to loop through each key/value pair in an array.

foreach ($array as $value) {
  code to be executed;
}

Разве ваш $query это array?

Ваш array это $items = [], который вы "наполняете" через while (пусть хоть и с избыточным присвоением, о чем я выше написал).

→ Ссылка