Полагаю, проблема, с которой вы сталкиваетесь, это% term% вещь. В базе данных он будет искать любую совпадающую позицию, в которой находится термин. Поэтому, если вы попытаетесь сделать строку вместо «foo bar», она будет искать только соответствующую строку «foo bar», а не «foo» или «bar».
Вы можете сделать следующее
while ($ row = mysql_fetch_array ($ sql)) {
$ term = explode ("", $ term);
foreach ($ term как $ wordToReplace)
{
$ category = str_replace ($ wordToReplace, '<b>'
. $ wordToReplace. '</b>'
, $ row ['category']);
$ title = str_replace ($ wordToReplace, '<b>'
. $ wordToReplace. '</b>'
, $ row ['title']);
$ postCode = str_replace ($ wordToReplace, '<b>'
. $ wordToReplace. '</b>'
, $ row ['postcode']);
}
// а затем показать
echo '
Category:'. $ category;
echo '
Title:'. $ title;
echo '
Адрес:'. $ row ['add1'];
echo '
Street:'. $ row ['street'];
echo '
Город:'. $ row ['city'];
echo '
Почтовый индекс:'. $ postCode;
echo '
Phone:'. $ row ['phone'];
echo '
E-Mail:'. $ row ['email'];
echo '
Веб-сайт:'. $ row ['website'];
}
ПРИМЕЧАНИЕ. Этот код не был протестирован!