Я пытаюсь извлечь записи из базы данных и щелкнув ссылку, которую он передает, чтобы перейти к нужному URL-адресу. но когда я нажимаю на ссылку я получаю следующее сообщение об ошибке:Недопустимый аргумент, предоставленный foreach() в предложении else
Warning: Invalid argument supplied for foreach() in /home/next/public_html/cms/index.php on line 31
используемый код:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('includes/class-query.php');
if (!empty ($_GET)) {
if (!empty ($_GET['p'])) {
$post = $_GET['p'];
}
if (!empty ($_GET['cat'])) {
$cat = $_GET['cat'];
}
}
if (empty ($post) && empty ($cat)) {
$posts_array = $query->all_posts();
} elseif (!empty ($post)) {
$posts_array = $query->post($post);
} elseif (!empty ($cat)) {
echo 'cat';
} ?>
<html>
<head>
<title></title>
</head>
<body>
<?php foreach ($posts_array as $post) : ?>
<div class="post">
<h1><a href="?p=<?php echo $post->ID; ?>"><?php echo $post->post_title; ?></a></h1>
<p><?php echo $post->post_content; ?></p>
</div>
<?php endforeach; ?>
</body>
</html>
Ваш запрос не удался, и вам нужно выяснить, почему. Проверьте наличие ошибок для db и PHP. –
место echos ('echo" failed ";') во всех ваших условных операторах и посмотреть, что там появляется. Вы можете отслеживать/устранять неполадки таким образом, а также использовать print_r и/или var_dump –
Я уверен, что ' Php print_r ($ posts_array); ?> 'повторно вызывает проблему. Вероятно, '$ posts_array' не является массивом. – redimp