我的数据库中保存了自动填充选项。我的搜索以精确的方式给出结果,因为它是我需要它的方式。全文。 但是当涉及到搜索时,我想从每个搜索过的单词中修剪最后2个字符。即使搜索查询由多个单词组成。
问题在于我的母语在形容词中使用不同的最后1-2个字符,具体取决于名词的性别。交易是用户不必输入不同类型的形容词来获得不同的结果,但无论他在形容词中输入哪种方式,他都会获得相同的结果。这可能吗?
实施例
你输入什么:1。bonita chicita 2. nice girlie
全文搜索:1。boni chici 2. ni girl
答案 0 :(得分:0)
现在我将回答如何修剪所提供的每个单词的最后2个字符,并在新信息出现时更新答案。
$string = 'bonita chicita';
$array = explode(' ', $string); // Adds each word into an array
// Loop through each word in the array and remove the last 2 characters
for($i=0; $i<count($array); $i++) {
$array[$i] = substr($array[$i], 0, strlen($array[$i])-2) . '%'; // For adding wildcards in place of the 2 removed characters
}
// Recreate the string from the array
$newString = implode(' ', $array);
// This will now echo boni chici
echo $newString;
你也可以将它放入一个多用途的功能中。
function editString($string) {
$array = explode(' ', $string);
for($i=0; $i<count($array); $i++) {
$array[$i] = substr($array[$i], 0, strlen($array[$i])-2) . '%'; // For adding wildcards in place of the 2 removed characters
}
return implode(' ', $array);
}
echo editString("bonita chicita"); // echos boni chici
对于数据库设计方式的搜索目的,您需要将%通配符替换为已移除的2个字符,因此可以在$array[$i] .= '%'
之后添加substr()
,然后使用新的通配字符串进行搜索数据库。
我在SQL Fiddle尝试了这个,但它似乎有效。