|
|
|
| с помощью Ваших статей сделал (пытаюсь) поиск по базе.
его код:
<?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:51)
| | поменял
`title` varchar(255) NOT NULL default '',
|
на
title tinytext cp1251_general_ci
|
но ниче не поменялось.. | |
|
|
|
|
|
|
|
для: Kicher
(25.02.2007 в 18:51)
| | А зачем ты сначала делаешь запрос на БД и приравниваешь к $result, а потом то что получил опять отправляешь на запрос к базе? Получается что запрашиваешь мягко говоря не то. | |
|
|
|
|
|
|
|
для: marcus
(25.02.2007 в 20:22)
| | упс...
я просто пример взял... :) | |
|
|
|