У меня есть поисковая форма, в которой пользователь должен ввести слово. До сих пор это работает просто отлично, но когда я ввожу слово с двумя или более пробелами, запрос не возвращает ничего (пусто).
$search = $_POST['srch'];
if (!$search == "")
{
$con = mysql_connect('nnnnn', 'nnnnn', 'nnnn');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("nnnnnnn", $con);
$search = mysql_real_escape_string($search);
$sql = "SELECT * FROM `computers` WHERE `MODEL` REGEXP '$search|$search\$' OR
`DESCR`\n"
. "REGEXP '^$search|$search\$' LIMIT 0, 30 ";
// here check if there is any content
if (mysql_fetch_array($result))
{
while($row = mysql_fetch_array($result))
{// here just echoing the returned content
}
}else echo "not found";
}echo "enter a word"! ;
Так что, если я, например, введу core 2
, то все результаты совпадений будут повторены.
Но если я напишу core 2 dou
, он ничего не вернет, даже «Ошибка не найдена».
Как я могу это исправить?
Я попробовал PHPMyAdmin, заменив $search
и возвращаемый запрос совпадает даже с core 2 dou
и даже с добавлением беспорядочных слов, таких как
core 2 dou computers
Я уверен, что проблема в способе PHP отправить запрос или обработать его, я просто не могу понять это