Forum Moderators: coopster
<?php
include 'library/config.php';
include 'library/opendb.php';
//open database connection
$connections = mysql_connect($dbhost, $dbuser, $dbpass) or die ( "Unabale to connect to the database" );
//select database
mysql_select_db($dbname) or die ( "Unable to select database!" );
//specify how many results to display per page
$limit = 10;
// Get the search variable from URL
$var = @$_GET['q'] ;
//trim whitespace from the stored variable
$trimmed = trim($var);
//separate key-phrases into keywords
$trimmed_array = explode(" ",$trimmed);
// check for an empty string and display a message.
if ($trimmed == "") {
$resultmsg = "<p>Sökord saknas</p><p>Ange ett sökord...</p>" ;
}
// check for a search parameter
if (!isset($var)){
$resultmsg = "<p>Ingen sökträff</p><p>Din sökning gav inget resultat! </p>" ;
}
// Build SQL Query for each keyword entered
foreach ($trimmed_array as $trimm){
// EDIT HERE and specify your table and field names for the SQL query
$query = "SELECT * FROM allonline WHERE performerid LIKE \"%$trimm%\" OR languages LIKE \"%$trimm%\" OR bio LIKE \"%$trimm%\" ORDER BY id DESC" ;
// Execute the query to get number of rows that contain search kewords
$numresults=mysql_query ($query);
$row_num_links_main =mysql_num_rows ($numresults);
// next determine if 's' has been passed to script, if not use 0.
// 's' is a variable that gets set as we navigate the search result pages.
if (empty($s)) {
$s=0;
}
// now let's get results.
$query .= " LIMIT $s,$limit" ;
$numresults = mysql_query ($query) or die ( "Couldn't execute query" );
$row= mysql_fetch_array ($numresults);
//store record id of every item that contains the keyword in the array we need to do this to avoid display of duplicate search result.
do{
//EDIT HERE and specify your field name that is primary key
$adid_array[] = $row[ 'id' ];
}while( $row= mysql_fetch_array($numresults));
} //end foreach
if($row_num_links_main == 0 && $row_set_num == 0){
$resultmsg = "<p>Sök resultat för:" . $trimmed ."</p><p>Din sökning gav inget resultat!</p>" ;
}
//delete duplicate record id's from the array. To do this we will use array_unique function
$tmparr = array_unique($adid_array);
$i=0;
foreach ($tmparr as $v) {
$newarr[$i] = $v;
$i++;
}
// now you can display the results returned. But first we will display the search form on the top of the page
?>
<form action="allonline.php" method="get" name="search">
<div align="center">
<input name="q" type="text" value=" <?php echo $q;?> " size="15">
<input name="search" type="submit" value="Search">
</div>
</form>
<?php
// display what the person searched for.
if( isset ($resultmsg)){
echo $resultmsg;
exit();
}else{
$a = $s + ($limit) ;
if ($a > $row_num_links_main) { $a = $row_num_links_main ; }
$b = $s + 1 ;
echo "<div align='center'><p>Sök resultat för: $var - $b to $a of $row_num_links_main</p></div>";
}
foreach($newarr as $value){
// EDIT HERE and specify your table and field names for the SQL query
$query_value = "SELECT * FROM allonline WHERE id = '$value'";
$num_value=mysql_query ($query_value);
$row_linkcat= mysql_fetch_array ($num_value);
$row_num_links= mysql_num_rows ($num_value);
$linkimages =( $row_linkcat[ 'picture' ] );
//now let's make the keywods bold. To do that we will use preg_replace function.
//EDIT parts of the lines below that have fields names like $row_linkcat[ 'field1' ]
//This script assumes you are searching only 3 fields. If you are searching more fileds make sure that add appropriate line.
$titlehigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'performerid' ] );
$linkhigh = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'languages' ] );
$linkdesc = preg_replace ( "'($var)'si" , "<b>\\1</b>" , $row_linkcat[ 'bio' ] );
foreach($trimmed_array as $trimm){
if($trimm!= 'b' ){
//IF you added more fields to search make sure to add them below as well.
$titlehigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $titlehigh);
$linkhigh = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkhigh);
$linkdesc = preg_replace( "'($trimm)'si" , "<b>\\1</b>" , $linkdesc);
}
//end highlight
?>
<table align="center" width="500" border="1" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2" width="100"><img src="<?php echo $linkimages;?>" width="100" height="75"></td>
<td width="394"><div align="center"><a href="http://www.mydomain.com/index.php?id=<?php echo $titlehigh;?>"><?php echo $titlehigh;?> - <?php echo $linkhigh;?></a></div></td>
</tr>
<tr>
<td><?php echo $linkdesc;?></td>
</tr>
</table>
<br>
<?php
} //end foreach $trimmed_array
if($row_num_links_main > $limit){
// next we need to do the links to other search result pages
if ($s>=1) { // do not display previous link if 's' is '0'
$prevs=($s-$limit);
echo "<div align='center'><a href=\"$PHP_SELF?s=$prevs&q=$var\">Previous " .$limit. "</a></div>";
}
// check to see if last page
$slimit =$s+$limit;
if (!(($slimit/$limit)==$row_num_links_main) && $row_num_links_main!=1) {
// not last page so display next link
$n=$s+$limit;
echo "<div align='center'><a href=\"$PHP_SELF?s=$n&q=$var\">Next " .$limit. "</a></div>";
}
}
} //end foreach $newarr
echo "<div align='center'><p>Showing results $b to $a of $row_num_links_main</p></div>";
?>
We love to help here! By the way, I'd like to welcome you to WebmasterWorld!
May your stay here be pleasant. :)