menwn Posted January 26, 2007 Share Posted January 26, 2007 Hi allI have this problem. I have a search engine and I would like the user to be able to search with prefix terms without using *. For know the user as to type "$someth*" but i would like to be able to search for "someth"and add the * before the fulltext querry.I tried useing str_replace('"', '*"', $someth) but this is not an option because I get *"$someth*" which of course is not correctCan I do anything so as make php understand wich " is which?thanks in advanceandreas Quote Link to comment Share on other sites More sharing options...
Cep Posted January 26, 2007 Share Posted January 26, 2007 Your not really making much sense.You DONT want them to use wildcard * marks in a search query? Is that what your saying?[code=php:0]str_replace("*", "", $mystring);[/code]Where $mystring is the string your trying to search. Quote Link to comment Share on other sites More sharing options...
marcus Posted January 26, 2007 Share Posted January 26, 2007 If you're using a mysql query this can be easily done while selecting it from the database.[code=php:0]$string = $_POST['string'];$array = array('*');if(in_array($string,$array)){$sql = "SELECT * FROM `tablename` WHERE `blah` LIKE($string)";$res = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_assoc($res)){ //search contents }}else {$sql = "SELECT * FROM `tablename` WHERE `blah` ='$string'";$res = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_assoc($res)){ //search contents }}[/code] Quote Link to comment Share on other sites More sharing options...
menwn Posted January 26, 2007 Author Share Posted January 26, 2007 What I want is to search with wildcard in fulltext but not make the user type it instead to be inserted automatically in the sql query Quote Link to comment Share on other sites More sharing options...
Cep Posted January 26, 2007 Share Posted January 26, 2007 I don't see how you could do that without replacing all white space with a * Quote Link to comment Share on other sites More sharing options...
matfish Posted January 26, 2007 Share Posted January 26, 2007 Do you need a '*' when searching in the query? Just remove the * and query LIKE '%$search%'?Or did I just not understand the question? Quote Link to comment Share on other sites More sharing options...
Jessica Posted January 26, 2007 Share Posted January 26, 2007 SELECT * FROM table WHERE fulltextfield LIKE '%$str%';You don't need to replace anything in their string. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.