опять нужен ваш совет!!!
пишу php блог
написал поисковую страницу
столкнулся с вот такой незадачей
ввожу в поиск слово "абстрактный" зная что в блоге это слово есть
жму "поиск" - всё нормально. заметка содержащая это слово находится
но если я ввожу в поиск например слово "следующие" зная что в блоге это слово есть
то выдаётся ошибка
вот код проблемной странички:
<? include ("blocks/bd.php");
if (isset($_POST['submit_s']))
{
$submit_s = $_POST['submit_s'];
}
if (isset($_POST['search']))
{
$search = $_POST['search'];
}
if (isset($submit_s))
{
if (empty($search) or strlen($search) < 4)
{
exit ("<p>Одно или все введенные вами ключевые слова для поиска имеет менее 4 символов, или же вы ввели в качестве ключевого слова недопустимые к поиску слова, такие как 'html', 'img' и т.д. Вернитесь назад и увеличьте количество символов в ключевом слове, либо измените его.</p>");
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
}
else
{
exit("<p>Ошибка! Вернитесь и повторите поиск</p>");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo "Результаты поиска: $search";?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?php include ("blocks/header.php"); ?>
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td valign='top'>
<?php
$result = mysql_query("SELECT id, title, description, date, author, mini_img, view FROM data WHERE MATCH(text) AGAINST('$search')", $db); //выборка из базы
if (!$result) //проверка соединения с базой данных
{
echo "<p>Ошибка. Запрос на выборку из базы данных не прошёл. Напишите об этом администратору admin@lds.net.ua <br> <strong>Код ошибки:</strong> </p>";
exit (mysql_error ()); //выводит ошибку mysql
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<table align='center' class='post'>
<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
<p class = 'post_adds'>Дата добавления: %s</p>
<p class = 'post_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s<br><p class='post_view'>Просмотров: %s</p></td>
</tr>
</table><br><br>",$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"], $myrow["author"],$myrow["description"], $myrow["view"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Ошибка!Нет такой записи</p>";
exit ();
}
?>
</td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
подскажите пожалуйста, что тут не так?
Спустя 36 минут, 28 секунд (27.08.2010 - 05:20) twin написал(а):
Для начала сюда.
Спустя 1 час, 25 минут, 46 секунд (27.08.2010 - 06:46) liver1981 написал(а):
twin, спасибо большое я прочел
но тут разбирается только сайт а я сечас с блогом вожусь
ошибка та же. кто нить подскажите пожалуйста?
но тут разбирается только сайт а я сечас с блогом вожусь
ошибка та же. кто нить подскажите пожалуйста?
Спустя 1 час, 11 минут, 49 секунд (27.08.2010 - 07:58) amazing написал(а):
Где
включи
И что напишет...
А вообще тут все Поповское переписывать надо
{
echo "<p>Ошибка!Нет такой записи</p>";
exit ();
}
включи
mysql_error ();
И что напишет...
А вообще тут все Поповское переписывать надо
Спустя 8 минут, 52 секунды (27.08.2010 - 08:07) liver1981 написал(а):
amazing, простите я не совсем понял
а как переписать?
так???
а как переписать?
{
echo "<p>Ошибка!Нет такой записи</p>";
mysql_error ();
exit ();
}
так???
Спустя 57 минут, 45 секунд (27.08.2010 - 09:04) linker написал(а):
Абсолютно без надобности, ибо проверка на ошибки существует
if (!$result) //проверка соединения с базой данныхА вот Поповский код переписывать однозначно.
{
echo "<p>Ошибка. Запрос на выборку из базы данных не прошёл. Напишите об этом администратору admin@lds.net.ua <br> <strong>Код ошибки:</strong> </p>";
exit (mysql_error ()); //выводит ошибку mysql
}
Спустя 4 часа, 6 минут, 53 секунды (27.08.2010 - 13:11) liver1981 написал(а):
linker, простите. т.е.исправить эту ошибку никак не получится?
Спустя 15 минут, 3 секунды (27.08.2010 - 13:26) inpost написал(а):
liver1981
Там где SELECT напиши *, а не указывай какие-то поля! ПОсмотри на результат. А лучше пройди ещё раз его урок, он там рассказывал про это =) Ты снова невнимательный
$result = mysql_query("SELECT id, title, description, date, author, mini_img, view FROM data WHERE MATCH(text) AGAINST('$search')", $db);
Там где SELECT напиши *, а не указывай какие-то поля! ПОсмотри на результат. А лучше пройди ещё раз его урок, он там рассказывал про это =) Ты снова невнимательный
Спустя 5 минут, 52 секунды (27.08.2010 - 13:32) amazing написал(а):
liver1981, на 1-м, и 2-м скришноте у тебя выводиться description, а на 3-м text, я правильно понял?
Спустя 11 минут, 13 секунд (27.08.2010 - 13:43) liver1981 написал(а):
inpost, я сверял с оригинальным php файлом - не могу найти ошибку
amazing, а как это определить? они же одинаковые, но ошибка та же
amazing, а как это определить? они же одинаковые, но ошибка та же
Спустя 3 минуты, 48 секунд (27.08.2010 - 13:47) liver1981 написал(а):
amazing, вы похоже что правы. видимо text не выводится а только description. как быть?
Спустя 7 минут, 45 секунд (27.08.2010 - 13:55) amazing написал(а):
liver1981, первый раз вы ищите словосочетание из Краткого описания, а второй раз уже из Полного текста статьи, если я правильно понял, в эту сторону копайте...
Спустя 2 минуты, 46 секунд (27.08.2010 - 13:58) liver1981 написал(а):
Спустя 25 секунд (27.08.2010 - 13:58) inpost написал(а):
Я показал, там ставишь *...
Сверяться надо не с файлом, который лежит на диске Попова, а с самим уроком, что он делает в процессе объяснения! Там ошибок нет, я ни разу к файлам с диска не обращался...
Или лучше в гугле напиши, как поиск делается, и читай-читай-читай =(((
Сверяться надо не с файлом, который лежит на диске Попова, а с самим уроком, что он делает в процессе объяснения! Там ошибок нет, я ни разу к файлам с диска не обращался...
Или лучше в гугле напиши, как поиск делается, и читай-читай-читай =(((
Спустя 37 секунд (27.08.2010 - 13:59) liver1981 написал(а):
amazing, дело в том что я только проверял слова из текста статьи про фотошоп и он их находит.
выходит что работает не только description - вот что странно. но некоторые слова из заметок не находит
ошибка та же
выходит что работает не только description - вот что странно. но некоторые слова из заметок не находит
ошибка та же
Спустя 2 минуты, 43 секунды (27.08.2010 - 14:01) liver1981 написал(а):
inpost, дело в том что я только что исправил на SELECT * FROM но та же ошибка
за видеоуроками следил внимательно насколько можно
не получается найти ошибку
кто нить если можно посмотрите папки?
http://up.iteam.ua/86329
за видеоуроками следил внимательно насколько можно
не получается найти ошибку
кто нить если можно посмотрите папки?
http://up.iteam.ua/86329
Спустя 2 минуты, 4 секунды (27.08.2010 - 14:04) linker написал(а):
inpost
Нет ни какой разницы указывать отдельные поля или все. Условие не зависит от выбираемых столбцов. И если посмотрите на код
Нет ни какой разницы указывать отдельные поля или все. Условие не зависит от выбираемых столбцов. И если посмотрите на код
if (mysql_num_rows($result) > 0)то заметите, что отрабатывает else. Во-вторых, это не ошибка в запросе, ибо выше есть обработчик. Я бы для начала проверил содержимое $search, а вдруг там не то, что ожидалось.
{
...
}
else
{
echo "<p>Ошибка!Нет такой записи</p>";
exit ();
}
Спустя 18 минут, 18 секунд (27.08.2010 - 14:22) liver1981 написал(а):
linker, скажите а как это проверить?
Спустя 2 минуты, 1 секунда (27.08.2010 - 14:24) linker написал(а):
Ну перед запросом напиши
echo $search;или можно на сам запрос посмотреть
echo "SELECT id, title, description, date, author, mini_img, view FROM data WHERE MATCH(text) AGAINST('$search')";
Спустя 8 минут, 48 секунд (27.08.2010 - 14:33) liver1981 написал(а):
<td valign='top'>
<?php
echo $search;
$result = mysql_query("SELECT * FROM data WHERE MATCH(text) AGAINST('$search')", $db); //выборка из базы
linker, я написал вот так но он на страницу поиска не через submit не пускает
Спустя 38 секунд (27.08.2010 - 14:33) liver1981 написал(а):
linker, а что на запрос смотреть ? что в нем не так?
Спустя 1 минута, 46 секунд (27.08.2010 - 14:35) linker написал(а):
А ты смотри как обычно, через сабмит. Вбей что хочешь найти и кликай на кнопку.
Просто иногда полезно знать как выглядит то, что уйдет мускулу в качестве запроса.
Просто иногда полезно знать как выглядит то, что уйдет мускулу в качестве запроса.
Спустя 24 минуты, 39 секунд (27.08.2010 - 15:00) liver1981 написал(а):
linker, вбиваю слово background в поиск
оно в блоге есть. пишет : Ошибка!Нет такой записи
ну это же не так. слово background там есть
ну как же быть? куда ещё что прописывать?
оно в блоге есть. пишет : Ошибка!Нет такой записи
ну это же не так. слово background там есть
ну как же быть? куда ещё что прописывать?
Спустя 20 минут, 52 секунды (27.08.2010 - 15:21) linker написал(а):
Я ж говорю, выведи на страницу текст того запроса, который отдается на съедение функции mysql_query(), а дальше будет видно.
Спустя 8 часов, 2 минуты, 4 секунды (27.08.2010 - 23:23) liver1981 написал(а):
linker, извините, а как это сделать?
Спустя 6 часов, 37 минут, 6 секунд (28.08.2010 - 06:00) twin написал(а):
Вместо mysql_query( напиши print(
Спустя 18 часов, 22 минуты, 42 секунды (29.08.2010 - 00:22) liver1981 написал(а):
twin, прописал
теперь вобще страничку не выводит а пишет:
Parse error: syntax error, unexpected ';' in Z:\home\localhost\www\phpblog\view_search.php on line 50
теперь вобще страничку не выводит а пишет:
Parse error: syntax error, unexpected ';' in Z:\home\localhost\www\phpblog\view_search.php on line 50
Спустя 7 часов, 4 минуты, 18 секунд (29.08.2010 - 07:27) liver1981 написал(а):
уважаемые форумчане, ну что не посмотрит никто?
Спустя 1 час, 34 минуты, 57 секунд (29.08.2010 - 09:02) twin написал(а):
На что смотреть то? Там все переделывать надо. За тебя никто не станет.
Ты перепиши по человечески, оно само наверняка заработает. А нет - тогда и показывай, посмотрим.
Ты перепиши по человечески, оно само наверняка заработает. А нет - тогда и показывай, посмотрим.
Спустя 2 часа, 14 минут, 24 секунды (29.08.2010 - 11:16) Onehp написал(а):
Пересмотри урок с поиском
Спустя 19 часов, 16 минут, 46 секунд (30.08.2010 - 06:33) liver1981 написал(а):
Onehp, да вот пересмотрел ну не могу найти ошибку хоть ты его тресни(
Спустя 8 минут, 34 секунды (30.08.2010 - 06:41) twin написал(а):
Onehp
Цитата |
Пересмотри урок с поиском |
Давай его сюда. Только код, бредни не нужно.
Спустя 25 минут, 47 секунд (30.08.2010 - 07:07) liver1981 написал(а):
twin, вот пожалуйсат, код странички view_search.php
надеюсь я всё правильно понял и это то о чём Вы говорите
надеюсь я всё правильно понял и это то о чём Вы говорите
<? include ("blocks/bd.php");
if (isset($_POST['submit_s']))
{
$submit_s = $_POST['submit_s'];
}
if (isset($_POST['search']))
{
$search = $_POST['search'];
}
if (isset($submit_s))
{
if (empty($search) or strlen($search) < 4)
{
exit ("<p>Поисковый запрос не введен, либо он менее 4-х символов.</p>");
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
}
else
{
exit("<p>Вы обратились к файлу без необходимых параметров.</p>");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><? echo "Заметки по запросу - $search "; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<? include ("blocks/header.php"); ?>
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("blocks/lefttd.php"); ?>
<td valign='top'>
<? $n=0; include ("blocks/nav.php"); ?>
<? $result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
//$r = $myrow["rating"]/$myrow["q_vote"];
//$r = intval($r);
printf ("<br><table align='center' class='post'>
<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s <p class='post_view'>Просмотров: %s Рейтинг: <img src='img/%s.gif'></p></td>
</tr>
</table><br><br>",$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"], $r);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по Вашему запросу на блоге не найдена.</p>";
exit();
}
?>
</td>
</tr>
</table></td>
</tr>
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
Спустя 58 минут, 30 секунд (30.08.2010 - 08:06) linker написал(а):
Чего-то я потерял уже нить разговора, а где запрос с поиском?
Спустя 30 минут, 59 секунд (30.08.2010 - 08:37) liver1981 написал(а):
linker, вот тут в папке все есть
http://up.iteam.ua/86329
http://up.iteam.ua/86329
Спустя 44 минуты, 34 секунды (30.08.2010 - 09:21) linker написал(а):
Пробуй такой запрос
$Sql = "SELECT `id`, `title`, `description`, `date`, `author`, `mini_img`, `view` FROM `data` "Плюс у тебя еще возможные проблемы с кодировкой.
. "WHERE MATCH (`text`) AGAINST ('+$search' IN BOOLEAN MODE)";
Спустя 47 минут, 15 секунд (30.08.2010 - 10:08) amazing написал(а):
liver1981, запрос который написал linker, с ним у меня все работает, только что проверил, так что пробуй, и благодари его!
Спустя 31 минута, 56 секунд (30.08.2010 - 10:40) liver1981 написал(а):
linker, всё работает
отдельное спасибо огромное
который раз восхищаюсь Вашим профессионализмом
желаю творческих успехов
amazing, да сейчас всё ок.
спасибо также всем кто участвовал
форуму процветания и всех благ.
отдельное спасибо огромное
который раз восхищаюсь Вашим профессионализмом
желаю творческих успехов
amazing, да сейчас всё ок.
спасибо также всем кто участвовал
форуму процветания и всех благ.