gpt4 book ai didi

PHP MySQL 搜索不起作用?

转载 作者:行者123 更新时间:2023-11-29 04:26:09 25 4
gpt4 key购买 nike

我在我的一个 PHP 站点中进行了简单的 MySQL 查询搜索,但它没有像我预期的那样工作。当用户在我的搜索栏中搜索一个词时,如果他/她要查找的内容不存在,我的函数应该返回“无结果”。但它只是显示空白,没有任何消息。

这是我的搜索代码:

function querySearch($searchTerm) {
$query = "SELECT * FROM content_en WHERE content_body LIKE '%{$searchTerm}%' ORDER BY id DESC ";
return $query;
}

function getSearch($searchTerm) {
$queryContents= querySearch($searchTerm);
$exeQuery = mysql_query($queryContents);
while( $fetchSet = mysql_fetch_array($exeQuery) ){
if(empty($fetchSet)){
echo "No Results Found";
}else{
if(empty($fetchSet['content_title'])){
echo 'Sorry No results Found';
}else{
echo '<h2><a href="index.php?pageId='.$fetchSet['id'].'">'.$fetchSet['content_title'].'</a></h2><br/>';
echo '<div>'.shortText($fetchSet['content_body'], 220).'</div><br/><br/>';
}
}
}

}

只是我强制它工作,所以这就是为什么要对 fetchSet 数组进行两次检查,一次检查整个数组,一次只检查一个键。但是,是的,它不起作用。

最佳答案

它不起作用的原因是您的查询中有错误或未返回任何结果。

首先,您应该向您的 mysql_query 添加某种错误处理,如下所示:

$exeQuery = mysql_query($queryContents) or die(mysql_error());

其次,如果没有找到结果它永远不会打印出任何东西的原因是因为 mysql_fetch_array 只会在有结果要获取时循环遍历结果。因此,如果返回 0 行,将完全跳过整个 while 循环。相反,您可以使用 mysql_num_rows BEFORE 循环。

例如:

if (mysql_num_rows($exeQuery) > 0) {
while( $fetchSet = mysql_fetch_array($exeQuery) ){
echo '<h2><a href="index.php?pageId='.$fetchSet['id'].'">'.$fetchSet['content_title'].'</a></h2><br/>';
echo '<div>'.shortText($fetchSet['content_body'], 220).'</div><br/><br/>';
}
}
else {
echo "No Results Found";
}

关于PHP MySQL 搜索不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10987701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com