因此,我目前正在搜索网站时遇到问题。所以我目前的搜索将实现这一点; 用户输入" crik"它会回归"板球"搜索。 但是,如果用户输入"蟋蟀"它不会回来"板球"搜索。 我如何让它工作? 我目前的PHP代码是;
$searchQ = $_GET['search'];
$ssss = $pdo->prepare('SELECT * FROM listing WHERE name LIKE :search');
$ssss->bindValue(':search', "%" . $searchQ . "%");
$ssss->execute();
我也试过了,但它没有回复任何东西;
$ssss = $pdo->prepare('SELECT * FROM listing WHERE MATCH(name) AGAINST (:search IN BOOLEAN MODE) ');
答案 0 :(得分:0)
如果您希望输入crickets
与名称cricket
匹配,您也可以使用名称列上的通配符,例如:
$ssss = $pdo->prepare("SELECT * FROM listing
WHERE name LIKE :search1
OR :search2 LIKE CONCAT('%', name, '%')");
$ssss->bindValue(':search1', '%' . $searchQ . '%');
$ssss->bindValue(':search2', $searchQ);
或更短且更一致(我不确定绑定是否会以这种方式工作,但您可以尝试):
$ssss = $pdo->prepare("SELECT * FROM listing
WHERE name LIKE CONCAT('%', :search, '%')
OR :search LIKE CONCAT('%', name, '%')");
$ssss->bindValue(':search', $searchQ);
答案 1 :(得分:0)
您可以更改搜索字符串
$searchQ = $_GET['search'];
$searchArr = str_split($searchQ );
$searchQ_new = "";
foreach($searchArr as $alpha)
{
$searchQ_new .= $alpha . "%";
}
现在,您可以使用代码搜索$ searchQ_new