I’m trying to write a search script for my website. And i’m having two issues to battle with.
1) In a situation whereby the user types a sentence in the search box, how can I handle that? Should I just go on and take it like a single string and search for it in my desired table? If I do wont it affect the effectiveness of the website.? And most time return no result..
2) If i’m to search in several tables how can I acheive this.
Thanks for you time and patience.
Example:
Assuming i have the following tables in my db
about Table
about_id
about_head
about_content
about_tags
about_created
about_cs Table
about_cs_id
about_cs_head
about_cs_content
about_cs_tags
about_cs_created
home Table
home_id
home_head
home_content
home_tags
home_created
I’m planning to have different criteria for the users to base their search on..
Search By Date: ( Date picker… Date will be queried against the date a particular article was created. In all the tables )
Search by Tags: ( A single (one or two) word search to search all the tables with a tag column in it )
Search Main Article: ( this is where the user will be allowed to enter any type of search query (string) and it’ll be search for in the all the tables that have a content field in it )
So if the User enters a word like “The Most Famous Church In South Bend”….
Do I just search for thw whole string
LIKE % ' .$searchString. ' %
or is there a way I can break it down and search for each word seperately?
Information is not clear enough. I am assuming you need site wide search.
In that case, I would suggest you to go with php lucene implementation Zend_Lucene
[EDIT]
Since you have to search very few tables, I would suggest you to go with full text search.
here is very good tutorial to move on.
http://devzone.zend.com/26/using-mysql-full-text-searching/