Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по сайту - не работает!
 
 автор: areku   (19.03.2010 в 22:18)   письмо автору
 
 

Помогите! Как исправить?
Например, напечатаем "поз" и нажмем "Поиск"
Вот получилось - "По Вашему запросу ничего не найдено. Попробуйте изменить запрос."

Но в сайте (или MySQL) уже есть текст.
См. книгу "PHP: практика создания Web-сайта" - М.Кузнецов и И.Симдянов.

Мне трудно - найти ошибку?
Я не професионал, а начинающий.

search_fulltext.php


<?php
  
// Выставляем уровень обработки ошибок 
  
error_reporting(E_ALL & ~E_NOTICE);

  
// Подключаем SoftTime FrameWork
  
require_once("config/class.config.php");
  
// Устанавливаем соединение с базой данных
  
require_once("config/config.php");
  
// Подключаем функцию навигации
  
require_once("utils.navigation.php");
  
// Заголовок
  
require_once("utils.title.php");
  
// Подключаем функцию постраничной навигации
  
require_once("utils.pager.php");

  try
  {
    
// Подключаем верхний шаблон
    
$pagename "Поиск по сайту";
    
$keywords "Поиск по сайту";
    require_once (
"templates/top.php");

    
// Заголовок страницы
    
echo title($pagename);

    if(empty(
$_GET['name']))
    {
      echo 
"<div class=\"main_txt\">Введите фразу для поиска.</div>";
    }      
    else
    {
      
// Проверяем введённые данные на предмет SQL-инъекций
      
if (!get_magic_quotes_gpc())
      {
        
$_GET['name'] = mysql_escape_string($_GET['name']);
      }
    
      
// Элемент постраничной навигация
      
if(empty($_GET['page'])) $page 1;
      else 
$page $_GET['page'];
        
      
// Число ссылок в постраничной навигации
      
$page_link 3;
      
// Число позиций на странице
      
$pnumber 10;
      
// Постраничная навигация
      
$first = ($page 1)*$pnumber;
    
      
// Подсчитываем количество найденных позиций $total
      
$total 0;
      
$query "SELECT COUNT($tbl_position.id_position)
                FROM 
$tbl_paragraph$tbl_position 
                WHERE MATCH (
$tbl_paragraph.name) AGAINST ('$_GET[name]' IN BOOLEAN MODE) AND 
                      
$tbl_position.hide = 'show' AND
                      
$tbl_paragraph.hide = 'show' AND
                      
$tbl_position.id_position = 
                      
$tbl_paragraph.id_position";
      
$tot mysql_query($query);
      if(!
$tot)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при извлечении 
                                 количества позиций"
);
      }
      
$total += mysql_result($tot0);
      
$query "SELECT COUNT($tbl_news.id_news)
                FROM 
$tbl_news
                WHERE MATCH (name, body) AGAINST ('
$_GET[name]' IN BOOLEAN MODE) AND 
                      
$tbl_news.hide = 'show'";
      
$tot mysql_query($query);
      if(!
$tot)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при извлечении 
                                 количества позиций"
);
      }
      
$total += mysql_result($tot0);
    
      
// Выводим содержимое текущего каталога
      
$query "SELECT $tbl_position.id_position AS id_position,
                       
$tbl_position.id_catalog AS id_catalog,
                       
$tbl_position.name AS name,
                       'art' AS link
                FROM 
$tbl_paragraph$tbl_position
                WHERE MATCH (
$tbl_paragraph.name) AGAINST ('$_GET[name]' IN BOOLEAN MODE) AND 
                      
$tbl_position.hide = 'show' AND
                      
$tbl_paragraph.hide = 'show' AND
                      
$tbl_position.id_position = 
                      
$tbl_paragraph.id_position
                GROUP BY 
$tbl_position.id_position
                UNION
                SELECT 
$tbl_news.id_news AS id_position,
                       0,
                       
$tbl_news.name AS name,
                       'news' AS link
                FROM 
$tbl_news
                WHERE MATCH (name, body) AGAINST ('
$_GET[name]' IN BOOLEAN MODE) AND 
                      
$tbl_news.hide = 'show'
                ORDER BY name
                LIMIT 
$first$pnumber";
    
      
$pos mysql_query($query);
      if(!
$pos)
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                                 
$query,
                                
"Ошибка при формировании 
                                 списка позиций"
);
      }
      
// Если имеется хотя бы одна позиция
      // выводим результирующий список
      
if(mysql_num_rows($pos) > 0)
      {
        while(
$position mysql_fetch_array($pos))
        {
          if(
$position['link'] == "art")
          {
            echo 
"<div class=main_txt><a class=\"main_txt_lnk\" 
                  href=index.php?id_catalog=
$position[id_catalog]".
                 
"&id_position=$position[id_position]>".
                 
"$position[name]</a></div>";
          }
          if(
$position['link'] == "news")
          {
            echo 
"<div class=main_txt><a class=\"main_txt_lnk\" 
                  href=news.php?id_news=
$position[id_position]>".
                 
"$position[name]</a></div>";
          }
        }
        echo 
"<div class=\"main_txt\">";
        
pager($page
              
$total
              
$pnumber
              
$page_link
              
"&name=".urlencode($_GET['name']));
        echo 
"</div>";
      }
      else
      {
        echo 
"<div class=\"main_txt\">По Вашему запросу ничего 
              не найдено. Попробуйте изменить запрос.</div>"
;
      }
    }

    
//Подключаем нижний шаблон
    
require_once ("templates/bottom.php");
  }
  catch(
ExceptionMySQL $exc)
  {
    require_once(
"exception_mysql_debug.php");
  }
  catch(
ExceptionMySQL $exc)
  {
    require_once(
"exception_mysql_debug.php"); 
  }
  catch(
ExceptionMember $exc)
  {
    require_once(
"exception_member_debug.php"); 
  }
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования