Помощник
|
При переносе сайта на реальный хостинг перестал работать поиск |
werd_34
|
Сообщение
#1
|
||
|
|
||
|
|||
fedornabilkin |
18.11.2013, 11:07;
Ответить: fedornabilkin
Сообщение
#2
|
|
Посмотри, что у тебя падает в $search и потом посмотри, что отдает mb_strlen($search,'UTF-8')
Скрипт отрабатывает - пишет "Поисковый запрос должен содержать не менее 4-х символов", "Ничего не найдено!", но статьи не ищет... А это настораживает, по скрипту либо не менее 4 символов, либо ничего не найдено и при этом, конечно же, никакого результата не должно быть.Мне кажется должно быть что-то одно:
<h1>Результаты поиска</h1> <?php echo $_SESSION['res']; unset($_SESSION['res']); if(count($result) > 0){ foreach($result as $item){ ?> <h1><a href="<?php echo $site_url; ?>view_article.php?article_id=<?php echo $item['article_id']; ?>"> <?php echo htmlspecialchars($item['title']); ?></a></h1><?php echo $item['short_text']; ?> <?php } } ?> Этот код ужасен, предлагаю такой вариант <?php $html = '<h1>Результаты поиска</h1>'; $html .= $_SESSION['res']; unset($_SESSION['res']); if( count($result) > 0 ){ foreach($result as $row){ $html .= ' <h2><a href="'.$site_url.'view_article.php?article_id='.$row['article_id'].'">'.$row['title'].'</a></h2> <div class="short">'.$row['short_text'].'</div> '; } } echo $html; ?> htmlspecialchars, если и использовать, то при сохранении в БД, а не при выводе. Но тут уже кому как. В цикле h2, потому что h1 на странице используется только один раз. Еще я бы рекомендовал использовать кеширование для страниц поиска, что бы не нагружать лишний раз БД и для поисковиков лишняя страница. Правда немного логику придется изменить. |
|
|
werd_34
|
Сообщение
#3
|
|
В $search попадает текст, переданный методом POST при нажатии submit_search.
Спасибо за вариант кода, попробовал, но! У меня где-то есть ошибка (предполагаю, что в сессии) - даже не выводится значение $html = '<h1>Результаты поиска</h1>' При наборе 1,2,3 символов выводит "Поисковый запрос должен содержать не менее 4-х символов" При наборе слова выводит "Ничего не найдено!" |
|
|
fedornabilkin |
25.11.2013, 10:09;
Ответить: fedornabilkin
Сообщение
#4
|
|
|
Как вариант, можно вывести на страницу строку запроса.
Вот эту строку $res = mysql_query("SELECT `article_id`, `title`, `date`, `short_text`, `views` FROM `articles` WHERE MATCH(title, short_text, content) AGAINST('{$search}') AND `visible`='1' ORDER BY `date` DESC") or die(mysql_error()); Заменить на такое $sql = "SELECT `article_id`, `title`, `date`, `short_text`, `views` FROM `articles` WHERE MATCH(title, short_text, content) AGAINST('{$search}') AND `visible`='1' ORDER BY `date` DESC" $res = mysql_query($sql) or die(mysql_error()); echo $sql; Получить строку запроса, скопировать и выполнить запрос непосредственно через пхпадмин, возможно действительно ничего не ищет. Тогда уже смотреть сам запрос и параметры таблиц.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Какой % отказов нормален для сайта? | 12 | Aloof | 2844 | Сегодня, 17:05 автор: Liudmila |
|
Хостинг "Hostland" - качественный хостинг по разумным ценам и со своей Панелью Управления | 0 | artmeteor | 404 | 18.4.2024, 22:46 автор: artmeteor |
|
Быстрая индексация страниц сайта и обратных ссылок - 2Index | 38 | 2Index | 6646 | 18.4.2024, 12:56 автор: 2Index |
|
Услуги хостинг, аренда серверов США, Нидерланды, РФ | RICHHost | 110 | RICHHost | 66920 | 17.4.2024, 1:30 автор: RICHHost |
|
SiteAnalyzer - бесплатная программа для аудита и анализа сайта | 77 | Chaser | 74225 | 9.4.2024, 11:36 автор: Chaser |
Текстовая версия | Сейчас: 20.4.2024, 17:19 |