<?php
$mysql_result[0]['id']="1";
$mysql_result[0]['address']="www.example.com/page1";
$mysql_result[0]['title']="Page 1";
$mysql_result[0]['content']="The quick dog jumps over the lazy dog.";
$mysql_result[0]['image']="image1.jpg";
$mysql_result[1]['id']="2";
$mysql_result[1]['address']="www.example.com/page2";
$mysql_result[1]['title']="Page 2";
$mysql_result[1]['content']="The best thing about morning is breakfast.";
$mysql_result[1]['image']="image2.jpg";
$mysql_result[2]['id']="3";
$mysql_result[2]['address']="www.example.com/page3";
$mysql_result[2]['title']="Page 3";
$mysql_result[2]['content']="Hotdogs are great ballpark food.";
$mysql_result[2]['image']="image3.jpg";
// instead of the above initialization which i made by hand for demonstration,
// you need to initialize the variable $mysql_result with data
// from your DB like this
//
// $inc = 0;
// while($results = $result->fetch_array(MYSQLI_ASSOC))
// {
// $mysql_result[$inc]=$results;
// $inc++;
// }
$query="dog";
$chars_to_show_before = 10; // ...1234567890dog
$chars_to_show_after = 10; // dog1234567890...
foreach($mysql_result as $results)
{
$content = str_replace($query,"my_un1qu3_r3pl4c3m3nt_".$query,$results['content']);
$occurences = explode("my_un1qu3_r3pl4c3m3nt_",$content);
$position_in_original_content = 0;
foreach($occurences as $an_occurence)
{
if (strpos($an_occurence,$query) !== false)
{
$content=$an_occurence;
echo '<li class="media">
<a class="pull-left" href="'.$results['address'].'">
<img class="media-object thumbnail" src="'.$results['image'].'" style="height:100px !important">
</a>
<div class="media-body">
<h4 class="media-heading"><a href="'.$results['address'].'">'.$results['title'].'</a></h4>
<p>...'.str_replace($query,'<strong>'.$query.'</strong>', substr($results['content'],max(0,($position_in_original_content-$chars_to_show_before)),strlen(strlen($query))+$chars_to_show_after+$chars_to_show_before)).'...</p>
</div>
</li>';
}
$position_in_original_content = $position_in_original_content + strlen($an_occurence);
}
}
?>