@artempershin33

Как исправить ошибку?

<?php
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.php';
});
  include 'online_store.php';

$PDO = PdoConnect::getInstance();

  $result = $PDO->PDO->query("
    SELECT * FROM `product`
  ");

  $products = array();

  while ($productInfo = $result->fetch()) {
    $products[] = $productInfo;
  }
?>

<section class="catalog" id="catalog">
	   		<div class="container">
			<h2>Каталог</h2>
			<div class="row">
			<?foreach ($products as $product):?>
      <div class="product-item">
              <div class="product-item_img" style="background: url('<?=$product['image']?>') no-repeat;background-position: center; padding-bottom: 220px;"></div>
  						<div class="product-list">
 							<h3><?=$product['title']?></h3>
      							<span class="price"><?=$product['price']?></span>
      								<a href="#contact" class="button">Заказать</a>
  										</div>
									</div>
			<?endforeach?>
		</div>
	</section>


Ошибка Warning: Invalid argument supplied for foreach() in on line 59(Ошибка в foreach)
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
(Ошибка в foreach)
Во первых не ошибка, а варнинг.
Во вторых очевидно что $products пустой, в зависимости от того как организован код, $products либо не виден в приведенном шаблоне, так как область видимости верхнего кода не совпадает с областью видимости нижнего кода (что вероятнее всего), либо запрос возвращает пустой набор (но тогда бы варнинга не было, так как массив пустой, но все же подходящий как аргумент для форич).

PS: Вообще на ваши вопросы ответы есть, а отмеченных решений нет, что говорит либо о наплевательском отношении к людям которые вам помогали, либо о незнании что вообще такой функционал существует (сомнительно) и помогает другим решать похожие проблемы .
Ответ написан
Ваш ответ на вопрос

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

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