我正在做一个搜索系统,在这个系统中我显示搜索结果,但也有一些文本以搜索词开头。
但是我遇到了一个问题,我不知道如何解决它。
问题是:我在数据库中有一个单词“宪法”,例如,如果我搜索“Const”,我得到我的结果和我的文字“宪法”,但如果我搜索“缺点”我得到我的结果但问题是我没有“Const ......”的文字。
你有没有办法解决这个问题?
我的问题代码:
$search = $url[1];
$read = $pdo->prepare("SELECT * FROM pages WHERE title LIKE ? OR content LIKE ? LIMIT ?,?");
$read->bindValue(1, "%$search%", PDO::PARAM_STR);
$read->bindValue(2, "%$search%", PDO::PARAM_STR);
$read->bindParam(3, $begin,PDO::PARAM_INT);
$read->bindParam(4, $max,PDO::PARAM_INT);
$read->execute();
$searchPos = stripos($result['content'],$search);
$searchLen = strlen($search);
$result_text = '"'.substr($result['content'], $searchPos, $searchLen + 35).'..."';
echo '<p>'.strip_tags($result_text).'</p>';
答案 0 :(得分:1)
您可能遇到区分大小写的问题。
请尝试使用stripos。您的查询已经不区分大小写,因为您正在使用LIKE。
$searchPos = strpos($result['content'],$search);