Pakistan IT Forum (Discuss Information Technology in Pakistan)
News: Boards and Categories have been modified. Please post your Feedbacks and Suggestions.
 
*
Hi, Guest. Welcome to IT Forum of Pakistan, Please login or register. January 07, 2009, 05:47:57 AM


Login with IT Forum's username, password and session length


Pak IT forum is launched to provide Pakistan's IT community with a platform to discuss IT related issues. These IT related discussions are proved to be useful for other Pakistani people. Information Technology in Pakistan is hottest issue on IT related forums. We hope that serious Pakistani people will join this IT Forum and will let us know about their experience in order to boast Pakistan's Software Exports.

Pages: [1]
  Print  
Author Topic: Search Function Code  (Read 766 times)
Aleeza
Newbie
*
Posts: 7


View Profile
« on: May 30, 2007, 07:03:58 PM »

 am in the process of designing an application which will run in IE or Firefox. It will be entirely offline and not on the web.

Part of the application needs to include a page with a search function to search a index about 1200 keywords.

I've searched various online manuals & tutorials but the closest I can find is the Google Search function which doesn't really suit my needs.

All I'm after is the code for a simple search function which will look up the word in list and drop the results on the same page

I want to try and make it work something like this:

Enter Keyword: xxxxx

Press "Search"

Search Results:

1
2
3

The index or "database" will be included within the body or form section of the same document.

Can anyone point me in the right direction to find such code?
Logged
Asim_khi
Newbie
*
Posts: 15


View Profile
« Reply #1 on: May 30, 2007, 07:04:19 PM »

do a quick google on 'php mysql full-text search'
_________________
Lostboy

Cat, the other other white meat

Please read Posting Etiquette before posting
Logged
Aleeza
Newbie
*
Posts: 7


View Profile
« Reply #2 on: May 30, 2007, 07:05:14 PM »

Thanks for this.

I managed to piece together something that works the way I want it to but now I can't get the Search Box to appear on the page. As you can probably see from the way I've done this, I'm new to this and would really appreciate any help.

In the example the word to search for is "plant"

<HTML><HEAD><TITLE>Search Page</TITLE></HEAD><STYLE TYPE=text/css></STYLE></HEAD><FORM NAME="database"><INPUT TYPE="hidden" NAME="list" VALUE='ABC

<title><A href="PAGE LINK GOES HERE.htm">Plant Nurseries</A><keys>Bulb propagating, Fruit tree nursery operation, Ornamental plant growing, Plant stock growing n.e.c., Seedling growing, Turf growing, Vine stock nursery operation.</p><content><url>ABC

<title>Result 2<keys> Plant growing, Plant stock growing <p><content><url>ABC

<title>Result 3<keys>Plant growing</p><content><url>ABC

'>
</FORM>

<script language="JavaScript">
<!--
function Page(url,title,keywords,description) {
while ((url.length > 0) && (url.charAt(0) == " ")) {
url = url.substring(1,url.length);
}
this.url = url;
while ((title.length > 0) && (title.charAt(0) == " ")) {
title = title.substring(1,title.length);
}
this.title = title;
this.keywords = keywords;
this.description = description;
return this;
}
function Database() {
var pos = 0;
//*htm link~Page Title|Title^description*
//<url>htm link<title>Page Title<keys>Title<content>description
while ((pos1 = amorphous.indexOf("<title>",pos)) != -1) {
pos2 = amorphous.indexOf("<keys>",pos1+1);
pos3 = amorphous.indexOf("<content>",pos1+1);
pos4 = amorphous.indexOf("<url>",pos3+1);

if ((pos2 != -1)
&& (pos2 < pos3) && (pos3 < pos4)
&& (pos4 <= amorphous.indexOf("<url>",pos))) {
this[database_length++] = new Page(amorphous.substring(pos,pos1),
amorphous.substring(pos1+7,pos2),
amorphous.substring(pos2+6,pos3),
amorphous.substring(pos3+9,pos4));
pos = pos4+1;
} else { // error reading amorphous database
if (pos+30 <= amorphous.length)
alert('Error reading in amorphous database around "'
+ amorphous.substring(pos,pos+30) + '"');
pos = amorphous.indexOf("<url>",pos) + 5;
}
}
return this;
}
function search(str) {
menu_length = 0;
temp = new Object();
temp_length = 0;
words_length = 0;
words = new Object();
pos = 0;
while ((pos = str.indexOf(" ")) != -1
&& and_search != "exact") {
words[words_length] = str.substring(0,pos);
if (words[words_length].length > 0)
words_length++;
if (str.length == 1)
str="";
else
str = str.substring(pos+1,str.length);
}
if (str.length > 0)
words[words_length++] = str;
for (q=0;q<words_length;q++) {
temp_length = 0;
str = words[q].toLowerCase();
len = (and_search=="and"&&q>0?menu_length:database_length);
for (n=0; n<len; n++) {
if (and_search=="and"&&q>0) {
combo = (menu[n].title + " " + menu[n].description
+ " " + menu[n].keywords).toLowerCase();
} else {
combo = (database[n].title + " " + database[n].description
+ " " + database[n].keywords).toLowerCase();
}
if (combo.indexOf(str) != -1) // found
temp[temp_length++] = (and_search=="and"&&q>0?menu[n]:database[n]);
}
if (and_search!="and" && q>0) {
added = 0;
for (i=0;i<temp_length;i++) {
duplicate = false;
for (j=0;j<menu_length&&!duplicate;j++) {
if (menu[j] == temp) {
duplicate = true;
}
}
if (!duplicate)
menu[menu_length+(added++)] = temp;
}
menu_length += added;
} else {
for(h=0;h<temp_length;h++)
menu[h] = temp[h];
menu_length = temp_length;
}
}
}
function entry() {
if ((document.entryform.keyword.value.length == 0)
|| (document.entryform.keyword.value == " ")) {
alert("First you must enter a keyword to search for.");
return false;
}
and_search = (document.entryform.and_or.selectedIndex == 0?"and":"or");
if (document.entryform.and_or.selectedIndex == 2)
and_search = "exact";
location.href = location.pathname + "?"
+ escape(document.entryform.keyword.value)
+ (and_search != "or"?"&"+and_search:"");
return false;
}
function redWord(str) {
for(r=0; r<words_length; r++) {
pos = -3;
word = words[r].toLowerCase();
while ((pos = str.toLowerCase().indexOf(word,pos+3)) != -1) {
val = pos+word.length;
str = str.substring(0,pos) + "*"
+ str.substring(pos,val) + "|"
+ str.substring(val,str.length);
}
}
pos = -16;
while ((pos = str.toLowerCase().indexOf("*",pos+16)) != -1)
str = str.substring(0,pos) + "<font color=red>"
+ str.substring(pos+1,str.length);
pos = -7;
while ((pos = str.toLowerCase().indexOf("|",pos+7)) != -1)
str = str.substring(0,pos) + "</font>"
+ str.substring(pos+1,str.length);
return str;
}

var amorphous = document.database.list.value;
temp_str = amorphous.substring(amorphous.length-2,amorphous.length);
if (temp_str.indexOf("<url>") == -1)
amorphous += "<url>";
else
amorphous += " "; // amorphous database must have characters after last asterisk

database_length = 0; // Netscape 2 fix
var database = new Database(); // read in from amorphous database

menu_length = 0; // Netscape 2 fix
var menu = new Object();

string = "";
and_search = "or";
if (location.search.length > 1) {
string = unescape(location.search.substring(1,location.search.length));
pos = 0;
while ((pos = string.indexOf('"',pos)) != -1) {
string = string.substring(0,pos) + '\\"' + string.substring(pos+1,string.length);
pos += 2;
}
if (string.substring(string.length-4,string.length) == "&and") {
string = string.substring(0,string.length-4);
and_search = "and";
} else if (string.substring(string.length-6,string.length) == "&exact") {
string = string.substring(0,string.length-6);
and_search = "exact";
} else if (string.substring(string.length-3,string.length) == "&or") {
string = string.substring(0,string.length-3);
and_search = "or";
}
search(string);
}

if (location.search.length > 1)
document.write();

// eliminate the keywords portion of the statement below to eliminate them from your display

for (n=0; n<menu_length; n++)
document.write('<b>&nbsp&nbsp'+menu[n].title
+' </b><ul>'+redWord(menu[n].description)+'</li></ul><br>\n');
if ((menu_length == 0) && (location.search.length > 1))
document.write('Primary Activity "'+string+'" not found!\n');
// -->
</script>
<hr noshade>
<p>

<!--Content to appear after the search results goes here-->

</p>
</body>
</html>
Logged
Mr.Bugz
Newbie
*
Posts: 29


xstrem_ice
View Profile WWW Email
« Reply #3 on: June 07, 2007, 07:55:14 AM »

nice 0ne , Keep it better t0 f0r in php Tongue t0 get faster
Logged

Pages: [1]
  Print  
 
Jump to:  


Powered By: comsdev Partners