gpt4 book ai didi

mysql - 如何在输入时从数据库获取结果并匹配所有数据?

转载 作者:行者123 更新时间:2023-11-29 17:54:35 25 4
gpt4 key购买 nike

我的网站上有“位置搜索”功能,我可以在其中搜索位置。例如,如果我搜索 'new york' 我会得到结果,但如果我通过第一个单词 'l' 或使用单词 'new' 或缺少单词 'new york' 中的任何字符来搜索位置,我会得到什么都没有。

JS:

document.getElementById('text-input').addEventListener('keyup' , searchLocation);

searchLocation 函数向连接数据库并返回匹配项的 PHP 文件发出 AJAX 请求。

这是 PHP 文件中的代码:

$query = $_POST['q'];
$pattern = '/^[a-zA-Z]+(\s+[a-zA-Z]+)*$/';
if(preg_match($pattern, $query)){
$stmt = $pdo->prepare('SELECT * FROM users WHERE id IN (SELECT MIN(id) FROM users WHERE location SOUNDS LIKE :s
GROUP BY location
);');
$stmt->bindValue(':s', '%' . $query . '%', PDO::PARAM_STR);
$stmt->execute();
$value = $stmt->fetch();
$count = $stmt->rowCount();

if($count > 0){
echo $value['location'];
}else{
echo 'No Results Found';
}
}

我必须输入整个单词,即使有拼写错误的单词,例如“now york”,它也会找到“new york”。

但是如果我输入 'n' 或 'new' ,我将找不到任何结果。

如何完成这个任务?

最佳答案

您的sql语句使用sounds like运算符,用于比较两个字符串的声音(发音)。您需要使用简单的 like 运算符来匹配子字符串:

... WHERE location LIKE  :s

关于mysql - 如何在输入时从数据库获取结果并匹配所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48976597/

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