blaster_god Posted August 28, 2007 Share Posted August 28, 2007 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 Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/ Share on other sites More sharing options...
ReDucTor Posted August 28, 2007 Share Posted August 28, 2007 I would recommend for searching look at FULL TEXT indexing Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/#findComment-336707 Share on other sites More sharing options...
blaster_god Posted August 28, 2007 Author Share Posted August 28, 2007 Hello, I already looked there .. but I diden't find any method of doing what I want . I am not very good with mysql . This is a part of a software (.exe) that I am making for a contest for my school . I am good with C++ ... not with php and mysql .. Please someone help me with this . Thank you Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/#findComment-336712 Share on other sites More sharing options...
fenway Posted August 29, 2007 Share Posted August 29, 2007 Then you should split your string on spaces and search using % wildcards... slow, but it will work. Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/#findComment-337244 Share on other sites More sharing options...
blaster_god Posted August 29, 2007 Author Share Posted August 29, 2007 Can you please give me a simple example . I am not a lazzy guy, I just don't understand exactly what you mean . Thank you Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/#findComment-337337 Share on other sites More sharing options...
fenway Posted August 30, 2007 Share Posted August 30, 2007 Sorry, I didn't see all of your code before... you'd have to try to find the two words together and separately, and "score" each "hit" differently. Link to comment https://forums.phpfreaks.com/topic/67133-searching-the-database-for-consecutive-words-and-combinations/#findComment-338009 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.