http://qs321.pair.com?node_id=272619

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Greetings O' Wise Ones

I'm trying to search a database field (of type TEXT) containing a description of certain tropical plants using a number of keywords.

I'm allowing the user to type in certain keys words (e.g. "red flower october") into a field, an want to return all records whos description contains one or all of the key words.

loop within a loop?

I'm not sure whether to loop through each keyword (i.e. "red" then "flower" then "october") searching for it in the description then return the result and move to the next record.

Any tips would be much appreciated.

I've tried :-
$sql_stmt = "select * from database where "; foreach $keyword ( @keywords ) { $sql_stmt .= " AND ( PlantDescription REGEXP "s/\$keyword/" );" }
returning multiple records that match the $keyword's criteria.

Is there a better way to do this using regexes?

Thanks

MD

20030709 Edit by Corion: Fixed formatting, added code tags