Здравствуйте. Беру из бд все нужные результаты, но почему то выводится только 1, в чём моя ошибка?
<?php
ini_set("error_reporting", E_ALL);
ini_set("display_errors", 1);
ini_set("display_startup_errors", 1);
class Search
{
function select_list($query)
{
global $mysqli;
$q = $mysqli->query($query);
if (!$q) {
return null;
}
$ret = [];
while ($row = $q->fetch_array(MYSQLI_BOTH)) {
$out = array_push($ret, $result);
}
return $ret;
}
}
if (isset($_POST["search"])) {
include "search/db.php";
$db = new Search();
$word = $mysqli->real_escape_string($_POST["search"]);
$sql =
"SELECT
wp_posts.post_title, wp_posts.ID, wp_postmeta.meta_value, wp_postmeta.post_id, wp_posts.post_status
FROM
wp_posts
JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE
wp_posts.post_title LIKE '%" . $word . "%'
AND
wp_posts.post_status = 'publish'
OR
wp_posts.ID LIKE '%" . $word . "%'
OR
wp_postmeta.meta_value LIKE '%" . $word . "%'
OR
wp_postmeta.post_id LIKE '%" . $word . "%'
GROUP BY wp_posts.post_title
";
$text = "";
$result = mysqli_query($mysqli, $sql);
$num = mysqli_num_rows($result);
if ($num > 0) {
$row = mysqli_fetch_assoc($result);
$polink = get_permalink(get_page_by_title($row["post_title"]));
do {
$text .= "<p>По вашему запросу <strong>" . $word . "</strong> найдено " . $num . " совпадений</p>";
$text .= '<div class="result">';
$text .= ' <a href="' . $polink . '">' . $row["post_title"] . '</a>';
$text .= ' <p>пост id:' . $row["ID"] . '</p>';
$text .= ' <p>мета id:' . $row["post_id"] . '</p>';
$text .= ' <p>мета: ' . $row["meta_value"] . '</p>';
$text .= '</div>';
} while ($row = mysqli_fetch_assoc($result));
} else {
$text = "<li>По вашему запросу результатов не обнаружено</li>";
}
echo $text;
}
?>
:unsure: