我正在做一个搜索系统,在这个系统中,我将显示搜索结果,但还有一些文本以搜索到的单词开头。
但是我有一个问题,我没有解决的办法。
问题是:我在数据库中有一个“ Constitution”一词,例如,如果我搜索“ Const”,我得到的结果和我的文本“ Constitution”,但是如果我搜索“ cons”,我得到的结果但是问题是我没有带“ 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>';
您可能会遇到区分大小写的问题。
尝试改用Stripos。由于您使用的是LIKE,因此查询已经不区分大小写。
$searchPos = strpos($result['content'],$search);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句