Search boxes are importent part of a forum . User wants to find a topic very fast , he doesn't want to see all of the pages to find his favorite thing. The picture below shows a search box :
Put the following codes in "search.php" , they will show a form for search on the screen.
code:
<?php
include "auth.inc"; // we check that if user has loged in or not
include "funcs.php"; // the functions look like : connect (to connect to the database) and creatcode (for verification text) can be put in a file and then we include that file wherever it is required.
?>
<?php
include "auth.inc";
?>
<a href="logout.php">log out</a>
<br>
// the following html codes show a menu-bar on the page . they have been created by Frontpage . You can omit them.
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> search </title>
</head>
<body bgcolor="#99FF66" >
<table border="0" cellpadding="0" cellspacing="0" width="1055" height="625">
<!-- MSTableType="layout" -->
<tr>
<td valign="top" colspan="3" height="148">
<!-- MSCellType="ContentHead" -->
<p align="center">
<br>
<!--webbot bot="Navigation" S-Type="sequence" S-Orientation="horizontal" S-Rendering="graphics" S-Theme="poetic 0000" B-Include-Home="FALSE" B-Include-Up="FALSE" U-Page="sid:1001" --><a href="index.php"><img src="_derived/index.php_cmp_poetic000_hbtn.gif" width="154" height="37" border="0" alt="index.php" align="middle"></a> <a href="about.php"><img src="_derived/about.php_cmp_poetic000_hbtn.gif" width="154" height="37" border="0" alt="about.php" align="middle"></a> <a href="search.php"><img src="_derived/search.php_cmp_poetic000_hbtn.gif" width="154" height="37" border="0" alt="search.php" align="middle"></a><!--webbot bot="Navigation" i-checksum="38819" endspan --><br>
</p>
<p><font size="6"><b> search </b></font></td>
</tr>
<tr>
<td valign="top" width="300">
<!-- MSCellType="NavBody" -->
<br>
<font size="3"><b> main titles </b></font>
<?php
// the following is just a list of forums
echo"
<br>
<br>
1.<a href=\"showforum.php?link=satire\">satire</a>
<br>
<br>
2.<a href=\"showforum.php?link=drama\">drama</a>
<br>
<br>
3.<a href=\"showforum.php?link=tragic\">tragic</a>
<br>
<br>
4.<a href=\"showforum.php?link=joke\">joke</a>
<br>
<br>
5.<a href=\"showforum.php?link=others\">others</a>
";
?>
</td>
<td valign="top" width="747">
<!-- MSCellType="ContentBody" -->
<p align="justify"><b><font size="4">
<br>
<br>
<br>
<?php
if($_GET['q'] == "" or !isset($_GET['q']))
{
// This condition checks that if the search box is empty or not . If no search has begun the search box and the search button are shown , unless the results of search are shown.
?>
<form method="get" action="search.php">
// the search form is sent to "search.php" again.
<p>
<input type="text" name="q" size="20">
<input type="submit" value="Search" name="searchBtn">
</p>
</form>
<?php
}else{
// if the search box is not empty , we do a search over the database by the entered word.
// some prosses over the entered word
$key = $_GET['q'];
$key = htmlspecialchars($key); // change html characters in to regular text , this is an anti-hack process
$key = trim($key); // trim omits "space" characters from two sides of a text
// omit the dangerous characters from the entery .
$key = str_replace("'", "", $key);
$key = str_replace("\\", "", $key);
if(ereg("[^a-zA-z0-9\ ]",$key)){
// here we check the word format that it contains only numbers and letters.
echo "incorrect format for search phrase, just use letters , numbers and space";
echo "<br> <a href = \"search.php\" >Search again</a> <br>";
exit;
}
connect();
// search the posts titles for the entered word.
// Notice to this query , '%" means whatever.
$sql = "SELECT * FROM topics WHERE title LIKE '%".$key ."%' ";
$SearchResult = mysql_query($sql);
$TotalResults = mysql_num_rows($SearchResult);
if($TotalResults == 0){
// if there's no result show the message "no match"
echo "no matches";
echo "<br> <a href = \"search.php\" >Search again</a> <br>";
exit;
}
for($i = $TotalResults - 1; $i != -1; $i-- )
{
// print the search results on the screen .
$TextTitle = mysql_result($SearchResult, $i, 3);
$Textauthor = mysql_result($SearchResult, $i, 0);
$Textlink = mysql_result($SearchResult, $i, 5);
echo "<a href=\"showtopic.php?Textlink=" .$Textlink. " \">" . $TextTitle . "</a>";
echo "<br> <br>";
}
}
?>
</td>
<td valign="top" height="427" width="147">
<!-- MSCellType="NavBody2" -->
</td>
</tr>
<tr>
<td valign="top" colspan="3" height="50">
<!-- MSCellType="ContentFoot" -->
<br>
<br>
<p align="center">
<?php
echo get_pages_html(); // you can add page numbering to search results but I haven't done it here , this line is just a draft and isn't necessarry
?>
</td>
</tr>
</p>
</table>
</body>
</html>
<p>
<br>
</p>
<html dir="ltr">
There's enough comments between codes , so I don't explain more.
You can read the following related posts to understand codes here better:
http://webprogram4beginners.blogspot.com/2011/02/php-orders-to-work-with-database-and.html
http://webprogram4beginners.blogspot.com/2011/04/how-to-show-certain-post-by-user-demand.html
Excellent blog, I wish to share your post with my folks circle. It’s really helped me a lot, so keep sharing post like this
ReplyDeleteSelenium Training in Chennai | Selenium Training in Bangalore | Selenium Training in Pune
I am really happy with your blog because your article is very unique and powerful for new reader.
ReplyDeleteBest Dot Net Training in Chennai
Best Software Testing Training Institute in Chennai
Java Training with Placement
Best PHP Training Institutes