Hello, I posted this message in to a few forums but no one could help me . Maybe I will get lucky here . I want to make a search in my PHP database and return all rows that contain some keywords, one after another, in any order (or at least half of them, one after another) .
I want also to take words that has the key in them .
If we have the word “good” , the word “goodness” will be ok and also “nogood” will be ok .
I will explain more below .
I have an array with keywords (the array can have maximum 6 elements) . So :
key[1]=“hello”
key[2]=“how”
key[3]=“snow”
key[4]=“dancing”
key[5]=“golf”
I need a script that will search and return all rows that contain at least 3 (5/2 majored to the largest is 3) of this keywords, one after another, in any order . So something like all combinations :
Here hello how snow is fine -> good
When dancing gold snow how is it ? -> good
how snow dancing golf is at the mountain . -> good
I am wondering how snowing dancing golf is. -> good
Fred says hellow snow -> not good (only 2 words)
So far I am using :
$mysql_str='%';
for($i=0;$i<$no;$i++)
$mysql_str=$mysql_str.'%'.$keyword[$i];
$mysql_str=$mysql_str.'%';
->this is to add all words in a string for the mysql query
$result=mysql_query("SELECT *FROM `articole2` WHERE `continut` LIKE '$mysql_str' ORDER BY RAND() LIMIT 1001;");
->this is to return the results .
The problem is that my script returns results that have all words, anywhere in the body of the row . I need it to work only in consecutive order . Is it possible ?
I know this is hard … but maybe someone can help . Thank you in advance