Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите, пожалуйста, разобраться с ошибками MySQL.  (Прочитано 12244 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
Sergun
Участник

ru
Offline Offline

« : 08-02-2010 09:38 » 

Создаю блог на WordPress. Использую плагин Popularity Contest для отображения списка наиболее популярных записей блога. После активации плагина WP Tuner, который предназначен для управления производительностью блога, у меня в виджете популярных меток появились вот такие ошибки:



WordPress database error: [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 ')' at line 3]
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

WordPress database error: [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 ')' at line 3]
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

WordPress database error: [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 ')' at line 3]
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

WordPress database error: [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 ')' at line 3]
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

WordPress database error: [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 ')' at line 3]
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

Решил посмотреть на кодировку таблиц популярности. Оказались, что они установлены в кодировке latin1_swedish_ci. Поменял ее на utf8_general_ci, т.к. именно она поддерживается на движке WordPress. После изменения кодировки ошибки не исчезли... Скажите, пожалуйста, как их исправить?...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-02-2010 09:54 » 

SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3,)

запятая в конструкции IN ничего не говорит?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sergun
Участник

ru
Offline Offline

« Ответ #2 : 08-02-2010 10:37 » 

Извините, но нет... Я новичок в программировании и еще мало в чем разбираюсь... Ее убрать надо? Не могли же разработчики плагина намеренно совершать эту ошибку...

Подскажите, пожалуйста, где посмотреть реализацию этих SQL запросов? Посмотрел через phpMyAdmin - не нашел.
« Последнее редактирование: 08-02-2010 11:28 от Sel » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 08-02-2010 11:04 » 

Sergun, сноси модуль. Если ты не собираешься разбираться, то это единственный способ.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sergun
Участник

ru
Offline Offline

« Ответ #4 : 08-02-2010 11:59 » 

Подскажите, пожалуйста, где искать запрос и как его исправить, чтобы избавиться от ошибки?...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 08-02-2010 12:35 » 

Sergun, сделай в phpadmine запрос
SELECT post_id, total FROM wp_ak_popularity WHERE post_id IN (3)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sergun
Участник

ru
Offline Offline

« Ответ #6 : 08-02-2010 16:46 » 

Через phpMyAdmin зашел в БД своего блога, перешел на вкладку SQL, выполнил запрос и мне выдало: "MySQL вернула пустой результат (т.е. ноль строк). ( запрос занял 0.0004 сек. )", а ошибка не ушла...  Причем на разных страницах моего блога значение у строки в скобках разное... Скажите, пожалуйста, где может быть реализована процедура вывода этого запроса? Или придется искать другой плагин вывода популярных заметок?...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 08-02-2010 17:43 » 

проблему надо решать вот здесь
Код:
$ids = array_unique(array_merge($ids, $post_ids));
if (count($ids)) {
$result = $wpdb->get_results("
SELECT post_id, total
FROM $wpdb->ak_popularity
WHERE post_id IN (".implode(',', $ids).")
");
Судя по всему
$ids массив, где последний элемент пустой, вот почему и появляется лишняя запятая.
Но так у меня нет WP , то я и не могу проверить.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sergun
Участник

ru
Offline Offline

« Ответ #8 : 09-02-2010 02:32 » 

Спасибо большое! Убрал последний элемент с массива и ошибки исчезли! Интересно, этот элемент не нужен вообще?... Когда я опубликую свой блог на хостинг, он тоже не понадобится?...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines