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

Форум MySQL

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

 

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

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

тема: Полнотекстовый поиск в MySQL
 
 автор: Kicher   (25.02.2007 в 18:51)   письмо автору
 
 

с помощью Ваших статей сделал (пытаюсь) поиск по базе.
его код:

<?php 
include( "../config/config.php" );
    
$s $_GET['q'];
    
    
$result mysql_query("SELECT * FROM article 
    WHERE MATCH (title, text_intro, text, html_keywords, html_description) 
    AGAINST ('
$s') " );

  
$pgs mysql_query($result);
  if(!
$pgs)
  {
     echo 
"Ошибка в синтаксисе запроса";
     exit();
  }
  
// Если результат поиска не пуст выводим ссылки на статьи
  
if(mysql_num_rows($pgs)>0)
  {
     while(
$id mysql_fetch_array($pgs))
     {
        echo 
"<a href=index.php?id=$id>статья</a><br>";
     }
  }
?> 


но он все время выдает Ошибка в синтаксисе запроса

если выполнить идентичный запрос в PhpMyAdmin или в SQLyog:

SELECT * FROM article WHERE MATCH (`title`,`text_intro`,`text`,`html_keywords`,`html_description`) AGAINST ('фото');


то результат есть и все работает!
как можно найти ошибку?
вот структура таблицы:

CREATE TABLE `article` (                                                                 
           `id_article` int(11) NOT NULL auto_increment,                                          
           `id_cat` int(11) NOT NULL default '0',                                                 
           `title` varchar(255) NOT NULL default '',                                              
           `text_intro` text NOT NULL,                                                            
           `text` mediumtext NOT NULL,                                                            
           `create_date` int(11) NOT NULL default '0',                                            
           `view` int(1) NOT NULL default '0',                                                    
           `page_hits` int(11) NOT NULL default '0',                                              
           `pos` int(11) NOT NULL default '0',                                                    
           `html_keywords` text NOT NULL,                                                         
           `html_description` text,                                                               
           PRIMARY KEY  (`id_article`),                                                           
           FULLTEXT KEY `title` (`title`,`text_intro`,`text`,`html_keywords`,`html_description`)  
         ) ENGINE=MyISAM AUTO_INCREMENT=177 DEFAULT CHARSET=cp1251

   
 
 автор: Kicher   (25.02.2007 в 18:54)   письмо автору
 
   для: Kicher   (25.02.2007 в 18:51)
 

поменял

 `title` varchar(255) NOT NULL default '', 


на


title             tinytext    cp1251_general_ci


но ниче не поменялось..

   
 
 автор: marcus   (25.02.2007 в 20:22)   письмо автору
 
   для: Kicher   (25.02.2007 в 18:51)
 

А зачем ты сначала делаешь запрос на БД и приравниваешь к $result, а потом то что получил опять отправляешь на запрос к базе? Получается что запрашиваешь мягко говоря не то.

   
 
 автор: Kicher   (25.02.2007 в 20:26)   письмо автору
 
   для: marcus   (25.02.2007 в 20:22)
 

упс...
я просто пример взял... :)

   
Rambler's Top100
вверх

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