2015-05-06 2 views
0

Я пытаюсь создать онлайн-словарь, который берет данные от пользователя и трассирует обратно в базу данных, а затем выводит вывод как вход, но проблема в том, что пользователь вводит более двух пробелов (то есть Джон Вик) , результат возврата не найден (в моей базе данных John Wick). Вот мой код до сих пор:Функция поиска с пробелами

SELECT `E_word`,`V_word` FROM word WHERE `V_word` REGEXP '$word'"; 

где $ слово переменной ввода от пользователя

ответ

0

Использование preg_replace перед отправкой переменной в SQL Query и конвертировать несколько пробелов в один пробел.

$word = 'John Wick'; 
$result = preg_replace('!\s+!', ' ', $word); 

var_dump($result); 

Output:

John Wick

использовать также подстановочные % с запросом

$query = "SELECT `E_word`,`V_word` FROM word WHERE `V_word` LIKE '".$result."%'"; 
+0

Спасибо за ваш ответ, вы можете объяснить, почему мы должны использовать подстановочные знаки место там – vendetta

+0

предположим, что 'John Wick danny' в 'V_word' и используя подстановочный знак в конце' LIKE 'John Wick%' ', он даст вам две записи с« John Wick », а другой будет« John Wick danny » – Noman

+0

, результат $ хорошо работает, но кажется, что я пока все еще не работает, он все равно возвращается не найден, даже когда $ result имеет значение точно так же, как в базе данных – vendetta