Jump to content

Search words


RON_ron

Recommended Posts

I'm trying to pull in data using a particular word from a mysql db (it's like a search facility).

 

But this code only picks if the db has got the exact same word.

E.g. if fincom = "DALLS" it pulls the data only when "searchwords" has DALLS. It ignores if "searchwords" has BARBIE DALLS. How can I fix this. I need to pick all records which contains the search word 'fincom' anywhere in  searchwords.

 

Hope this makes scene.

 

$SomeVar = $_POST['fincom'];

$query = "SELECT * FROM  news_home WHERE searchwords = '".$SomeVar."' ORDER BY timestamp DESC";

$results = mysql_query($query);

Link to comment
https://forums.phpfreaks.com/topic/211033-search-words/
Share on other sites

Thanks. This is my new code. Still I can not find BARBIE DOLLS (all records which is similar to $SomeVar). Any idea whats wrong here?

 

$SomeVar = $_POST['fincom'];
$query = "SELECT * FROM news_home WHERE searchwords LIKE '%".$SomeVar."%' ORDER BY timestamp DESC";
$results = mysql_query($query);

$returnS="";
while($line= mysql_fetch_array($results))
{
$returnS.= $line["subject"].",,".$line["timestamp"].",,".$line["News"].",,".$line["links"].",,,";
}

Link to comment
https://forums.phpfreaks.com/topic/211033-search-words/#findComment-1100851
Share on other sites

Probably a better way using fulltext searches or something, but this will work:

 

$like  = "searchwords LIKE '%".implode("%' OR searchwords LIKE '%", explode(' ', $SomeVar))."%'";
$query = "SELECT * FROM news_home WHERE $like ORDER BY timestamp DESC";

Link to comment
https://forums.phpfreaks.com/topic/211033-search-words/#findComment-1100857
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.