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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите, пожалуйста, разобраться с ошибками MySQL.  (Прочитано 12242 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
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 » new

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