Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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