Разработка своих веб-приложений и страничек
Zver » 07 авг 2009, 20:43
Вот скрипт поиска на сайте. Но при любом поисковом запросе выводится что рез-тов нету )= Что не так ?
- Код: Выделить всё • Развернуть
Поиск на сайте
<form action="search.php?" method="get" name="search">
<input name="text" type="text" class="search_form" />
<input name="submit" type="submit" value=">>" class="search_button" /><br />
</form>
<?php
$var = @$_GET['text'] ;
$trimmed = trim($var);
$limit=10;
if ($trimmed == "")
{
echo "<p>Поисковой запрос пустой !</p>";
exit;
}
mysql_connect("localhost", "admin", "qwerty") or die(mysql_error());
mysql_select_db("test_db") or die(mysql_error());
$query = "SELECT * FROM `news` WHERE `content` OR `theme` LIKE '\"%$trimmed%\"' ORDER BY `id`";
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
if ($numrows == 0)
{
echo "<h4>Поиск</h4>";
echo "<p>Извените, но на поисковой запрос "" . $trimmed . "" нечего небыло найдено.</p>";
}
if (empty($s)) {
$s=0;
} else {
$query .= " limit $s, $limit";
$result = mysql_query($query) or die("Не могу выполнить запрос");
echo "<p>Показанны результаты для: "" . $var . ""</p>";
$count = 1 + $s ;
while ($row= mysql_fetch_array($result)) {
$title = $row["content"];
echo "$count.) $title" ;
$count++ ;
}
$currPage = (($s/$limit) + 1);
echo "<br />";
if ($s>=1) {
$prevs=($s-$limit);
print " <a href=\"$PHP_SELF?s=$prevs&text=$var\"><< Предыдущие 10 результатов</a>  ";
}
$pages=intval($numrows/$limit);
if ($numrows%$limit) {
$pages++;
}
if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
$news=$s+$limit;
echo " <a href=\"$PHP_SELF?s=$news&text=$var\">Следующие 10 результатов >></a>";
}
$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "<p>Показаны результаты с $b по $a из $numrows</p>";
}
?>
Возможно не верный MySql запрос. Помагите плз !

-
Zver
- Активный участник
-
- Сообщения: 1333
- Зарегистрирован: 18 дек 2008, 18:51
- Откуда: Саратов, Заводской
Костик » 07 авг 2009, 21:10
на маленьком сайте нет смісла в поиске
FreeBSD 9.2 and Fedora 18 user
-

Костик
- Активный участник
-
- Сообщения: 1944
- Зарегистрирован: 03 сен 2007, 02:15
zk » 07 авг 2009, 23:03
А вот этот самый запрос:
- Код: Выделить всё • Развернуть
SELECT * FROM `news` WHERE `content` OR `theme` LIKE '\"%$trimmed%\"' ORDER BY `id`
Что вообще из базы возвращает? Может у тебя там ничего нет?
-
zk
- Администратор
-
- Сообщения: 1971
- Зарегистрирован: 02 сен 2007, 16:04
- Домен: vfose.ru
Костик » 08 авг 2009, 00:02
ИНтересно а вот єти знаки проценті если их перенести как я сделал что будет ? = )
- Код: Выделить всё • Развернуть
LIKE '%".$trimmed."%'
FreeBSD 9.2 and Fedora 18 user
-

Костик
- Активный участник
-
- Сообщения: 1944
- Зарегистрирован: 03 сен 2007, 02:15
Rostov114 » 08 авг 2009, 06:52
^_^ Делаете запросы в стиле аля Юна?
- Код: Выделить всё • Развернуть
echo "<p>Извените, но на поисковой запрос "" . htmlspecialchars($trimmed) . "" нечего небыло найдено.</p>";
$trimmed = addcslashes($trimmed, '%_'); mysql_query("SELECT * FROM `news` WHERE `content` OR `theme` LIKE '%".mysql_real_escape_string($trimmed)."%' ORDER BY `id`");
Это как минимум чтобы исключить возможность SQL иньекции и XSS.
Некоммерческий проект «HSDN»
-

Rostov114
- Автор
-
- Сообщения: 3200
- Зарегистрирован: 18 окт 2007, 02:21
Zver » 08 авг 2009, 10:21
Поиск работает только если поисковой запрос полностью совпадает с записями в таблице. Почему так ?
-
Zver
- Активный участник
-
- Сообщения: 1333
- Зарегистрирован: 18 дек 2008, 18:51
- Откуда: Саратов, Заводской
Rostov114 » 08 авг 2009, 23:35
Zver писал(а):Поиск работает только если поисковой запрос полностью совпадает с записями в таблице. Почему так ?
- Код: Выделить всё • Развернуть
LIKE '% %'
?
Некоммерческий проект «HSDN»
-

Rostov114
- Автор
-
- Сообщения: 3200
- Зарегистрирован: 18 окт 2007, 02:21
Вернуться в PHP, HTML, CSS...
Кто сейчас на конференции
Сейчас этот форум просматривают: Amazon [Bot], Claude (Anthropic) [AI Bot], Google [Bot] и гости: 0