有一个带有搜索表单的代码,它应该通过几个输入的单词来搜索一篇文章。它通过一个单词找到所有内容,但如果我写第二个单词,则会出现错误:警告:mysqli_fetch_assoc() 期望参数 1 为 mysqli_result,布尔值在 D:\OpenServer\OpenServer\domains\localhost\src\news_auth.php 中给出第 105 行 第 105 行是"while($article = mysqli_fetch_assoc($query)){?>"行。我试图修复它,我认为问题出在引号中,我无法正确放置,但显然不是。请帮我解决这个问题。代码本身:
<form action="" method="post">
<div class="news_searching"><input type="text" name="search" class="news_search" placeholder="Введите статью">
<input type="submit" name="submit" class="news_search_button">
</div>
</form>
<hr>
<?php
if(isset($_POST['submit'])){
$search = explode(" ", $_POST['search']);
$count = count($search);
$array = array();
$i = 0;
foreach($search as $key) {
$i++;
if($i < $count) $array[] = "CONCAT (`title`) LIKE '%".$key."%' OR"; else $array[] = "CONCAT (`title`) LIKE '%".$key."%'";
}
$sql = "SELECT * FROM `news` WHERE ".implode("", $array);
$query = mysqli_query($connection, $sql);
while($article = mysqli_fetch_assoc($query)){?>
<div class="news_wrapper">
<img src="<?=$article['picture']?>" alt="" class='news_img'/>
<div class="news_text">
<div class="news_title">
<a href="content_article.php?id_n=<?=$article['id_n']?>"><?=$article['title']?></a>
</div>
<div class="news_descr">
<?=$article['descr']?>
</div>
<div class="news_info">
<div class="news_login">
<?=$article['login']?>
</div>
<div class="news_likes">
<img src="icons/eye.png" alt="" class="article_eye">
<a src="#" alt="" class="button-like">
<img src="icons/heart.png" alt="">
</a>
<?=$article['likes']?>
</div>
</div>
</div>
</div>
<?php
}
}?>
错误在行中:
它包括在OR和“之间没有空格(在此之前,在连接数据库之前,我写了** mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); **为了找出错误的确切原因,这变成了出是不正确的语法结果,这一行应该是这样的: