If you want to highlight the EXACT search string, do a str_replace() on
$row["Description"], $row["ProductName"], etc etc, replacing the search
phrase with <B>$searchSite</B>. Pretty simple.
<?
$description = str_replace($siteSearch, "<B>$siteSearch</B>",
$row["Description"]);
$productName = str_replace($siteSearch, "<B>$siteSearch</B>",
$row["ProductName"]);
?>
But, I'm guessing the search word is possibly more than one word??? If
that's the case, you may wish to highlight each word individually:
If that's the case, split the words in $searchSite into an array, and loop
through through the array, replacing each word with <B>word</B>.
Something like (untested):
<?
$searchWords = explode(" ", $searchSite);
foreach($searchWords as $key => $word)
{
$row["Description"] = str_replace($word, "<B>$word</B>",
$row["Description"]);
$row["ProductTitle"] = str_replace($word, "<B>$word</B>",
$row["ProductTitle"]);
}
echo $row["ProductTitle"]."<BR>";
echo $row["Description"]."<BR>";
?>
Although this will need further tweaking, because it's case sensitive
(searching for "dog" and "Dog" will produce different results, it doesn't
account for dog* (doggies, dogs, etc), and is perhaps a little limited in
other ways, but should get you started).
A well constructed reg exp instead of the str_replace will cover most of
this, but i'm no good at them, and str_replace is quicker, IF it's all you
need.
Justin French
--------------------
Creative Director
http://Indent.com.au
--------------------
on 06/05/02 9:26 PM, DC ([EMAIL PROTECTED]) wrote:
> Hi all,
>
> I have a mySQL database running with PHP4. I have constructed a search form
> ($searchSite) which returns results in a results page & now I want to have
> the word that was entered in the search form highlight in the results page.
>
> eg User enters a search for products using the word " gardening"
>
> Results page might return:
>
> "this shovel is a great gardening tool" and "to be a expert in gardening,
> you will need"...............I want the word gardening to be bold wherever
> it is displayed.
>
> My results page has the following code to display search results: BTW it
> works like a dream...I just want to jazz it up a bit.
>
> <?
>
> $result = mysql_query("SELECT * FROM products WHERE Description LIKE
> '%$searchSite%' OR Keywords LIKE '%$searchSite%' OR CatName LIKE
> '%$searchSite%' ");
>
> blah blah blah
>
> while ( $row = mysql_fetch_array($result) ) {
> echo("<tr bgcolor='#FFFFFF'>");
> echo("<td width='93'><div align='center'><font size= '2' face =
> 'Arial,Helvetica,Sans serif'>" . $row["Description"] . "</td>");
> echo("<td width='93'><div align='center'><font size= '2' face =
> 'Arial,Helvetica,Sans serif'>" . $row["ProductName"] . "</td>");
> echo("<td width='93'><div align='center'><font size= '2' face =
> 'Arial,Helvetica,Sans serif'>\$" . $row["RetailPrice"] . "</td>");
>
> ?>
>
> How do I do this to highlight my search words?
>
> Thanks, any ideas much appreciated by this PHP newbie.
>
> DC
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php