Page 1 of 1

highlighting keyword

Posted: Fri Apr 14, 2006 12:00 pm
by rami
i have followng tradition search script..i am searching in a description (a text filed of a database)
what i want it
1)direct to the lines of the description filed in which keywords are found(like google does) ie in description onle some part of feld where the keyword was found should be displayed
or if it is too difficult
then should highlight all the found keyword while displaying description in result page

where are adjustment required
here is my file

Code: Select all

<?php

  // Get the search variable from URL
  $var = @$_GET['q'] ;
  $trimmed = trim($var); //trim whitespace from the stored variable

// rows to return
$limit=10; 

// check for an empty string and display a message.
if ($trimmed == "")
  {
  echo "<p>Please enter a search...</p>";
  exit;
  }

// check for a search parameter
if (!isset($var))
  {
  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  }

//connect to your database ** EDIT REQUIRED HERE **
require_once ('../mysql_connect2.php');

// Build SQL Query  
$query = "select carpet_id,description from carpet where description like \"%$trimmed%\"  
  order by carpet_id"; // EDIT HERE and specify your table and field names for the SQL query

 $numresults=mysql_query($query);
 $numrows=mysql_num_rows($numresults);

// If we have no results, offer a google search as an alternative

if ($numrows == 0)
  {
  echo "<h4>Results</h4>";
  echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";

// google
 echo "<p><a href=\"http://www.google.com/search?q=" 
  . $trimmed . "\" target=\"_blank\" title=\"Look up 
  " . $trimmed . " on Google\">Click here</a> to try the 
  search on google</p>";
  }

// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }

// get results
  $query .= " limit $s,$limit";
  $result = mysql_query($query) or die("Couldn't execute query");

// display what the person searched for
echo "<p>You searched for: "" . $var . ""</p>";

// begin to show results set
echo "Results";
$count = 1 + $s ;
echo '<table border="0" width="100%" cellspacing="3" cellpadding="3" align="center">
<tr>
<td align="left" width="100%" bgcolor="#00659C"><b><font color=white>Carpet Details</font></b></td>
</tr>';
echo '</table>';
echo '<table border="0" width="100%" cellspacing="3" cellpadding="2" align="center" bgcolor="#EFEFEF">
<tr>
<td align="left" width="40%" bgcolor="#00659C"></td>
<td align="left" width="60%" bgcolor="#00659C"></td>
</tr>';
// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
	echo "	<tr>
		<td align=\"left\" ><b>Result no</b></td>
		<td align=\"left\">$count</td>
	</tr>\n";
echo "	<tr>
		<td align=\"left\" ><b>Carpet ID</b></td>
		<td align=\"left\">{$row['carpet_id']}</td>
	</tr>\n";
		echo "	<tr>
		<td colspan=\"2\">{$row['description']}</td>
	</tr>\n";
echo "	<tr>
		<td align=\"left\" ><a href=\"view_carpet.php?cid={$row['carpet_id']}\"><b>Full Description</b></a></td>
		<td ></td>
	</tr>\n";
		 $count++ ;
} // End of while loop.

echo '</table>';

$currPage = (($s/$limit) + 1);

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><< 
  Prev 10</a>&nbsp&nbsp;";
  }

// calculate number of pages needing links
  $pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from division

  if ($numrows%$limit) {
  // has remainder so add one page
  $pages++;
  }

// check to see if last page
  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

  // not last page so give NEXT link
  $news=$s+$limit;

  echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
  }

$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Showing results $b to $a of $numrows</p>";
  
?>