Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Поиск по базе


Автор: stat007 27.7.2010, 13:01
Помогите разобраться, пытаюсь прописать поиск по тексту БД своему сайта, но почему то он не срабатывает, и выдаёт вот такую ошибку в браузере:
Цитата

Запрос на выборку данных из базы не прошол. Напишите об этом администратору на e-mail... 
Код ошибки: 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AGAINS('самого')' at line 1


Вот сам программный код:
Код

$result = mysql_query("select * from data where MATCH(text) AGAINS('$search')",$db);

if(!$result)
{
echo "<p>Запрос на выборку данных из базы не прошол. Напишите об этом администратору на e-mail...         //***
<br><strong>Код ошибки:</strong> </p>";
exit(mysql_error());
}

if(mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);

do
{
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</p></td>
            </tr>
            
          </table><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();
}

Т.е. почему то срабатывает именно первый if, который я пометил //***

Автор: skyboy 27.7.2010, 13:08
потому что AGAINST

Автор: stat007 27.7.2010, 13:20
skyboy, Ага, точно, спасибо, но теперь всё-равно не срабатывает, и выдаёт теперь такую ошибку:
Цитата

Запрос на выборку данных из базы не прошол. Напишите об этом администратору на e-mail... 
Код ошибки: 

Can't find FULLTEXT index matching the column list

Автор: CruorVult 27.7.2010, 13:35
stat007, не срабатывает потому что поле text не индексированое как FULLTEXT

Автор: stat007 27.7.2010, 13:45
CruorVult, и что сделать тогда? что бы оно индексировалось как FULLTEXT???

Автор: CruorVult 27.7.2010, 14:50
http://dev.mysql.com/doc/refman/5.0/en/create-index.html

Если пользуйтесь phpmyadmin-ом, то в редактировании структуры таблицы есть кнопочка FULLTEXT (в конце)

Автор: stat007 27.7.2010, 19:35
Спасибо большое за помощь! Разобрался!!! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)