Nik2004
Guest
MySQL поиск: 30 символов перед и после искомого слова
Привет братцы, всех с наступающим!
Просьба огромная: протестите если не сложно у себя вот этот скрипт:
<?
echo "<form action=?=search method=post>
поиск:<input type=text name=search>
<input type=submit name=submit value=go>
</form>";
if ($search)
{
$srch="%".$search."%";
$query = "select id, title, msg, substring(msg, case when instr(msg,'$srch')
< 30 then 1 else instr(msg,'$srch') - 30 end, case when instr(msg,'$srch')
< 30 then 30 - instr(msg,'$srch') else 30 end + 30 + length('$srch'))
as excerpt from posts WHERE msg LIKE '%$srch%'";
$result = mysql_query($query);
if ($result)
{
echo "<table width=90% align=center border=1><tr>
</tr>";
while ($r = mysql_fetch_array($result))
{
$id = $r["id"];
$title = $r["title"];
$msg = $r["msg"];
$excerpt = $r["excerpt"];
echo "<tr><td colspan=4 bgcolor=\"#ffffa0\">$title</td>
<td colspan=4 bgcolor=\"#ffffa0\"><a href ='tur.php?show=$id'>$excerpt</a></td></tr>";
}
echo "</table>";
} else { echo "problems...."; }
}
?>
Работает или нет?
Штука полезная: ищет в текстах по ключевому слову и выдает его в окружении 60 символов справа и слева как в Яндексе. У меня же считывает конкретно в msg первые 60 символов + длину искомого слова, хотя по идее не должен. В общем, у меня кажется по странному глючит MySQL, либо глючит сам скрипт, но это вряд ли. Помогите пожалуйста!
Привет братцы, всех с наступающим!
Просьба огромная: протестите если не сложно у себя вот этот скрипт:
<?
echo "<form action=?=search method=post>
поиск:<input type=text name=search>
<input type=submit name=submit value=go>
</form>";
if ($search)
{
$srch="%".$search."%";
$query = "select id, title, msg, substring(msg, case when instr(msg,'$srch')
< 30 then 1 else instr(msg,'$srch') - 30 end, case when instr(msg,'$srch')
< 30 then 30 - instr(msg,'$srch') else 30 end + 30 + length('$srch'))
as excerpt from posts WHERE msg LIKE '%$srch%'";
$result = mysql_query($query);
if ($result)
{
echo "<table width=90% align=center border=1><tr>
</tr>";
while ($r = mysql_fetch_array($result))
{
$id = $r["id"];
$title = $r["title"];
$msg = $r["msg"];
$excerpt = $r["excerpt"];
echo "<tr><td colspan=4 bgcolor=\"#ffffa0\">$title</td>
<td colspan=4 bgcolor=\"#ffffa0\"><a href ='tur.php?show=$id'>$excerpt</a></td></tr>";
}
echo "</table>";
} else { echo "problems...."; }
}
?>
Работает или нет?
Штука полезная: ищет в текстах по ключевому слову и выдает его в окружении 60 символов справа и слева как в Яндексе. У меня же считывает конкретно в msg первые 60 символов + длину искомого слова, хотя по идее не должен. В общем, у меня кажется по странному глючит MySQL, либо глючит сам скрипт, но это вряд ли. Помогите пожалуйста!