I have a searching form that the user should enter a word. Till now it works just fine but when I enter a word with 2 or more white spaces the query returns none (empty).
$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"! ;
So if I enter core 2 for example it retruns all the matching results.
But if I write core 2 dou it doesn’t return anything, not even the “Not found error”.
How can I fix this?
I tried the PHPMyAdmin by replacing the $search
and the query return matches even with core 2 dou and even with adding messy words like
core 2 dou computers
i am sure the problem is in the php way of sending the query or handling it i just cant figure it out
Since you said any help would be appreciated, if you just want to search for a string, an easier way is to use LIKE instead of REGEXP, for example,
also, I’m not sure why you’re repeating $search separated by a ‘|’
incidentally, if multiple spaces are the problem, it’s easy to replace with single space, like this: