Не работает 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 (пусть хоть и с избыточным присвоением, о чем я выше написал).