Перейти к контенту
  • 0

ошибка в SQL syntax


hfv

Вопрос

Описание проблемы:

на форуме есть основные таблицы: Форум Статистика Последнее сообщение

 

При нажатии на название темы в форуме ошибки не происходит. Но если нажать на последнее сообщение (дата и время последнего сообщения) то выходит сообщение об ошибке: Возникла ошибка при работе с базой данных.

 

в лог записывается такая инф:

 

Дата: Fri, 18 Dec 2009 11:53:42 +0000
Номер ошибки: 1064
Ошибка: 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 'DESC LIMIT 0,1' at line 1
IP Адрес: ***
Страница: /forum/index.php?showtopic=62&view=getlastpost
Отладочная информация: array (
 1 => 
 array (
   'file' => '/home/net/public_html/forum/ips_kernel/classDb.php',
   'line' => 1010,
   'function' => 'query',
   'class' => 'db_driver_mysql',
 ),
 3 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 1352,
   'function' => 'returnLastPost',
   'class' => 'public_forums_forums_topics',
 ),
 4 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 361,
   'function' => '_doViewCheck',
   'class' => 'public_forums_forums_topics',
 ),
 5 => 
 array (
   'file' => '/home/net/public_html/forum/admin/sources/base/ipsController.php',
   'line' => 291,
   'function' => 'doExecute',
   'class' => 'public_forums_forums_topics',
 ),
)
mySQL query error: SELECT pid FROM ibf_posts WHERE queued=0 AND topic_id=62 ORDER BY  DESC LIMIT 0,1
===================================================
Дата: Fri, 18 Dec 2009 11:53:48 +0000
Номер ошибки: 1064
Ошибка: 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 'DESC LIMIT 0,1' at line 1
IP Адрес: ***
Страница: /forum/index.php?showtopic=826&view=getlastpost
Отладочная информация: array (
 1 => 
 array (
   'file' => '/home/net/public_html/forum/ips_kernel/classDb.php',
   'line' => 1010,
   'function' => 'query',
   'class' => 'db_driver_mysql',
 ),
 3 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 1352,
   'function' => 'returnLastPost',
   'class' => 'public_forums_forums_topics',
 ),
 4 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 361,
   'function' => '_doViewCheck',
   'class' => 'public_forums_forums_topics',
 ),
 5 => 
 array (
   'file' => '/home/net/public_html/forum/admin/sources/base/ipsController.php',
   'line' => 291,
   'function' => 'doExecute',
   'class' => 'public_forums_forums_topics',
 ),
)
mySQL query error: SELECT pid FROM ibf_posts WHERE queued=0 AND topic_id=826 ORDER BY  DESC LIMIT 0,1
===================================================
Дата: Fri, 18 Dec 2009 11:55:21 +0000
Номер ошибки: 1064
Ошибка: 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 'DESC LIMIT 0,1' at line 1
IP Адрес: ***
Страница: /forum/index.php?showtopic=826&view=getlastpost
Отладочная информация: array (
 1 => 
 array (
   'file' => '/home/net/public_html/forum/ips_kernel/classDb.php',
   'line' => 1010,
   'function' => 'query',
   'class' => 'db_driver_mysql',
 ),
 3 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 1352,
   'function' => 'returnLastPost',
   'class' => 'public_forums_forums_topics',
 ),
 4 => 
 array (
   'file' => '/home/net/public_html/forum/admin/applications/forums/modules_public/forums/topics.php',
   'line' => 361,
   'function' => '_doViewCheck',
   'class' => 'public_forums_forums_topics',
 ),
 5 => 
 array (
   'file' => '/home/net/public_html/forum/admin/sources/base/ipsController.php',
   'line' => 291,
   'function' => 'doExecute',
   'class' => 'public_forums_forums_topics',
 ),
)
mySQL query error: SELECT pid FROM ibf_posts WHERE queued=0 AND topic_id=826 ORDER BY  DESC LIMIT 0,1

 

в админке:

Проверка структуры базы дынных

Проверка индексов базы данных

ошибок никаких не показывает.

SQL восстановление делал так же.

 

подскажите где копать?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Эта ошибка не сразу появилась, дней 5 форум нормально работал, и сейчас работает, кроме как когда нажимаешь на ссылку вида _http://сайт/forum/index.php?showtopic=533&view=getlastpost (число и время поста) а если нажать на _http://сайт/forum/index.php?showtopic=533 то проблем нету.

хм.. даже не знаю что тут мот быть...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ошибочный запрос:

SELECT pid FROM ibf_posts WHERE queued=0 AND topic_id=62 ORDER BY DESC LIMIT 0,1

 

Очевидно, что не хватает значения ORDER BY _ТУТ_ DESC. Проблема возникает на URL http://сайт/forum/index.php?showtopic=533&...iew=getlastpost, обработчик этого вызова - функция returnLastPost, расположенная в файле /admin/applications/forums/modules_public/forums/topics.php. В её коде видим, как формируется запрос:

	$this->DB->build( array( 
									'select' => 'pid',
									'from'   => 'posts',
									'where'  => "queued=0 AND topic_id=".$this->topic['tid'],
									'order'  => $this->settings['post_order_column'].' DESC',
									'limit'  => array( 0,1 )
						)	  );

 

Следовательно, у вас отсутствует настройка post_order_column. В человеческом виде она звучит как "Сортировать сообщения по", находится в блоке "Просмотр сообщений" группы настроек "Темы, Сообщения и Опросы" вкладки форумы.

 

Почему её нет? Возможно, ошибка при конвертировании. Задите в эту группу настроек, проверьте значение в этом поле и нажмите "сохранить". Это должно переписать значение на правильное. Возможно, еще потребуется сбросить все кэши.

Изменено пользователем Ritsuka
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.