У меня проблемы со сценарием поиска.
В принципе, все в порядке с поиском, если результат найден, но если в БД (MySQL) нет совпадений, то моя ошибка не отображается .. Я что-то упустил? вот код:
<?php
$term = $_GET['term'];
$sql = mysql_query("select * from search_e where content like '%$term%'");
while ($row = mysql_fetch_array($sql)){
$data = $row['content'];
$first_pos = strpos($data,$term);
if ($first_pos !== false) {
$output = substr($data,max(0,$first_pos - 100),200 + strlen($term));?>
<div>
<p class="ptitle"><?php echo $row["fn"]; ?></p><hr>
Brief summary of contents:
<hr class="hr">
<p style="padding: 5px;">
<i>"<?php echo $output; ?>" </i>..
</p>
</div><br><br>
<?php
}
else {?>
<div><?php echo "Sorry! No results were found using term: ".$_GET['term']."<br>Try using fewer Keywords"; ?></div>
<?php }?>
<?php
}
//close
mysql_close();
?>
Это может быть что-то простое, я делаю неправильно, но я просто не могу понять это. Также я знаю, что код грязный, но его как я работаю.
Я также надеялся реализовать небольшой фрагмент, который я нашел, просматривая сеть, который выделяет конкретные слова в фразе.
function highlight($sString, $aWords) {
if (!is_array ($aWords) || empty ($aWords) || !is_string ($sString)) {
return false;
}
$sWords = implode ('|', $aWords);
return preg_replace ('@\b('.$sWords.')\b@si', '<strong style="background-color:yellow">$1</strong>', $sString);
}
Возможно ли работать в моем сценарии ??