Форум русской поддержки Joomla!® CMS
09.12.2016, 15:41:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Ошибки в базе 1064 - You have an error in your SQL syntax

 (Прочитано 786 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« : 26.10.2015, 12:16:45 »

Код:
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 'С днем Независимости" 195-135" ORDER BY product_price DESC LI' at line 1 SQL=SELECT p.`virtuemart_product_id`, `l`.`product_name` FROM `subdomaincard_virtuemart_products` as p INNER JOIN `subdomaincard_virtuemart_products_ru_ru` as l using (`virtuemart_product_id`) LEFT JOIN `subdomaincard_virtuemart_product_shoppergroups` as ps ON p.`virtuemart_product_id` = `ps`.`virtuemart_product_id` LEFT JOIN `subdomaincard_virtuemart_product_categories` as pc ON p.`virtuemart_product_id` = `pc`.`virtuemart_product_id` LEFT JOIN `subdomaincard_virtuemart_product_prices` as pp ON p.`virtuemart_product_id` = pp.`virtuemart_product_id` WHERE ( `pc`.`virtuemart_category_id` = 162 AND ( `ps`.`virtuemart_shoppergroup_id`= "2" OR `ps`.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`="1" ) AND p.`virtuemart_product_id`!="665" AND product_price <= "Открытка "С днем Независимости" 195-135" ORDER BY product_price DESC LIMIT 1
пробовал в sql файле в этих таблицах удалять
Код:
DEFAULT CHARSET=utf8
и менять
Код:
ENGINE=MyISAM
на
Код:
TYPE=MyISAM
ошибка не пропала
категории http://c.lik-astana.kz/tematicheskie/den-nezavisimosti.html работают и картинки этих открыток там отображаются а вот сам товар нет.
проблема появилась при переезде с Joomla 2.5.28 VirtueMart 2.6.16 на Joomla 3 VirtueMart 3.0.10 помогите разобраться
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #1 : 26.10.2015, 12:40:00 »

Информация о системе

куда копирую
Платформа, на которой работает PHP    Linux pkz1.hoster.kz 2.6.32-604.16.2.lve1.3.54.el6.x86_64 #1 SMP Mon Jul 27 11:32:29 EDT 2015 x86_64
Версия базы данных                            5.5.45-cll-lve
Кодировка базы данных                    utf8_general_ci
Версия                                                PHP   5.4.33
Веб-сервер                                            nginx/1.9.4
Интерфейс между веб-сервером и PHP    fpm-fcgi
Версия Joomla!                                    Joomla! 3.4.4 Stable [ Ember ] 8-September-2015 21:30 GMT
Версия Joomla! Platform                    Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT
Браузер пользователя                       Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

это откуда копирую
Платформа, на которой работает PHP   Windows NT 7-�� 6.1 build 7601 (Windows 7 Home Basic Edition Service Pack 1) i586
Версия базы данных                           5.5.45
Кодировка базы данных                   utf8_general_ci
Версия PHP                                           5.3.29
Веб-сервер                                     Apache/2.2.31 (Win32)
Интерфейс между веб-сервером и PHP   apache2handler
Версия Joomla!                                   Joomla! 3.2.7 Stable [ Ember ] 30-September-2014 14:00 GMT
Версия Joomla! Platform                   Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT
Браузер пользователя                           Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
Записан
passer
Живу я здесь
******

Репутация: +69/-3
Offline Offline

Пол: Мужской
Сообщений: 829



« Ответ #2 : 26.10.2015, 12:43:35 »

"С днем Независимости". Уберите двойные кавычки. Или запишите так
Код
Открытка \"С днем Независимости\" 195-135
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #3 : 26.10.2015, 12:47:02 »

Так при переходе по всем ссылкам такая ошибка если зайти в любой товар.
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #4 : 26.10.2015, 14:18:15 »

Копирую с локального хоста с рабочими параметрами таблицы и устанавливаю
_virtuemart_products
_virtuemart_products_ru_ru
_virtuemart_product_shoppergroups
_virtuemart_product_categories
_virtuemart_product_prices
также ошибка не исчезает.
Что еще можно сделать с ними подскажите может есть какой сторонний вариант для копирования базы
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #5 : 26.10.2015, 20:17:23 »

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

вообще странно, изменения в компонент в ядро вносились на уровне запросов? По идее там же отрабатывает mysql_real_escape_string и кавычки при вставке в БД должны экранироваться при выполнении запроса и после при селекте корректно показываться

и на всякий случай проверьте кодировку таблиц БД (не всей бд а именно таблиц)
Записан
passer
Живу я здесь
******

Репутация: +69/-3
Offline Offline

Пол: Мужской
Сообщений: 829



« Ответ #6 : 26.10.2015, 22:18:46 »

Не совсем, когда внимательней глянул и увидел
Код
SELECT p.`virtuemart_product_id`, `l`.`product_name` FROM `subdomaincard_virtuemart_products` AS p 
INNER JOIN `subdomaincard_virtuemart_products_ru_ru` AS l USING (`virtuemart_product_id`)
LEFT JOIN `subdomaincard_virtuemart_product_shoppergroups` AS ps ON p.`virtuemart_product_id` = `ps`.`virtuemart_product_id`
LEFT JOIN `subdomaincard_virtuemart_product_categories` AS pc ON p.`virtuemart_product_id` = `pc`.`virtuemart_product_id`
LEFT JOIN `subdomaincard_virtuemart_product_prices` AS pp ON p.`virtuemart_product_id` = pp.`virtuemart_product_id`
WHERE ( `pc`.`virtuemart_category_id` = 162
AND ( `ps`.`virtuemart_shoppergroup_id`= "2" OR `ps`.`virtuemart_shoppergroup_id` IS NULL )
AND p.`published`="1" )
AND p.`virtuemart_product_id`!="665"
AND product_price <= "Открытка "С днем Независимости" 195-135"
ORDER BY product_price DESC LIMIT 1
 
Ошибка в 2 последних строчках. Мало того что в product_price <= некорректное значение пихает, так еще и имена полей без префиксов
Решил не связываться. Если VM такие запросы генерит, сносить его надо, а не запросы править.
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #7 : 26.10.2015, 22:25:40 »

passer - хм, я конечно не спец по VirtueMart и глюков и багов в нем хватает - но такого никогда не видел, тип поля product_price вроде как decimal
как вы туда умудрились строку запихать? Это ведь физически невозможно

Цитировать
так еще и имена полей без префиксов
если имя поля в пределах задействованных таблиц уникально - то и префикс совершенно не нужен, это нормально
Записан
passer
Живу я здесь
******

Репутация: +69/-3
Offline Offline

Пол: Мужской
Сообщений: 829



« Ответ #8 : 26.10.2015, 22:46:50 »

passer - хм, я конечно не спец по VirtueMart и глюков и багов в нем хватает - но такого никогда не видел, тип поля product_price вроде как decimal
как вы туда умудрились строку запихать? Это ведь физически невозможно
Вопрос не ко мне. Тоже не великий спец. Это не значение поля, это условие выборки. Как оно туда попало понятия не имею.
если имя поля в пределах задействованных таблиц уникально - то и префикс совершенно не нужен, это нормально
Ну это да. Уникально ли оно тоже понятия не имею.
В общем Stasweb ищите где формируется запрос в этой части
Код
AND product_price <= "Открытка "С днем Независимости" 195-135"
и правте.
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #9 : 27.10.2015, 14:02:17 »

Включил отладку и при загрузки страницы товара выдает

1   JApplicationCms->execute()                                              /index.php:45
2   JApplicationSite->doExecute()                                      /libraries/cms/application/cms.php:252
3   JApplicationSite->dispatch()                                              /libraries/cms/application/site.php:230
4   JComponentHelper::renderComponent()                              /libraries/cms/application/site.php:191
5   JComponentHelper::executeComponent()                              /libraries/cms/component/helper.php:372
6   require_once()                                                              /libraries/cms/component/helper.php:392
7   JControllerLegacy->execute()                                              /components/com_virtuemart/virtuemart.php:124
8   VirtueMartControllerProductdetails->display()                      /libraries/legacy/controller/legacy.php:728
9   VirtueMartViewProductdetails->display()                              /components/com_virtuemart/controllers/productdetails.php:55
10   VirtueMartModelProduct->getNeighborProducts()                  /components/com_virtuemart/views/productdetails/view.html.php:163
11   JDatabaseDriver->loadAssocList()                                      /administrator/components/com_virtuemart/models/product.php:1621
12   JDatabaseDriverMysql->execute()                                       /libraries/joomla/database/driver.php:1123
В файле  /administrator/components/com_virtuemart/models/product.php есть такой кусок кода
Код:
public function loadProductPrices($productId,$virtuemart_shoppergroup_ids,$front){

$db = JFactory::getDbo();
if(!isset($this->_nullDate))$this->_nullDate = $db->getNullDate();
if(!isset($this->_now)){
$jnow = JFactory::getDate();
$this->_now = $jnow->toSQL();
}

$q = 'SELECT * FROM `#__virtuemart_product_prices` WHERE `virtuemart_product_id` = "'.$productId.'" ';

if($front){
if($virtuemart_shoppergroup_ids and count($virtuemart_shoppergroup_ids)>0){
$q .= ' AND (';
$sqrpss = '';
foreach($virtuemart_shoppergroup_ids as $sgrpId){
$sqrpss .= ' `virtuemart_shoppergroup_id` ="'.$sgrpId.'" OR ';
}

$q .= $sqrpss.' `virtuemart_shoppergroup_id` IS NULL OR `virtuemart_shoppergroup_id`="0") ';
}
$q .= ' AND ( (`product_price_publish_up` IS NULL OR `product_price_publish_up` = "' . $db->escape($this->_nullDate). '" OR `product_price_publish_up` <= "' .$db->escape($this->_now). '" )
        AND (`product_price_publish_down` IS NULL OR `product_price_publish_down` = "' .$db->escape($this->_nullDate). '" OR product_price_publish_down >= "' . $db->escape($this->_now). '" ) )';
}

$q .= ' ORDER BY `product_price` DESC';

static $loadedProductPrices = array();
$hash = $productId.','.implode('.',$virtuemart_shoppergroup_ids).','.(int)$front; //md5($q);

if(!isset($loadedProductPrices[$hash])){
$db->setQuery($q);
$prices = $db->loadAssocList();
$err = $db->getErrorMsg();
if(!empty($err)){
vmError('getProductSingle '.$err);
} else {
if(empty($prices)){
$loadedProductPrices[$hash] = false;
} else {
$loadedProductPrices[$hash] = $prices ;
}
}
}

return $loadedProductPrices[$hash];
}

То есть этот кусок
Код:
$q .= ' AND ( (`product_price_publish_up` IS NULL OR `product_price_publish_up` = "' . $db->escape($this->_nullDate). '" OR `product_price_publish_up` <= "' .$db->escape($this->_now). '" )
        AND (`product_price_publish_down` IS NULL OR `product_price_publish_down` = "' .$db->escape($this->_nullDate). '" OR product_price_publish_down >= "' . $db->escape($this->_now). '" ) )';
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #10 : 27.10.2015, 14:36:35 »

Проблему пришлась решать так перезалил все таблицы VirtueMart с помощью Sypex Dumper после этого открыл и пересохранил все товары вроде заработало благо товаров мало было.
Но вот теперь надо переводить второй сайт с 2,5 на 3 но там товаров гораздо больше свыше 1000 и открывать и сохранять каждый не вариант.
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #11 : 27.10.2015, 14:41:13 »

так все-таки - в таблицах в этих что было с кодировкой? Если там была неправильная - вполне возможно слить дамп, изменить кодировку и залить обратно (я про второй сайт).
Сначала же надо понять причину
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #12 : 27.10.2015, 14:46:27 »

Кодировка стояла utf8 и в таблицах тоже DEFAULT CHARSET=utf8.
Скорее всего при копировании через phpMyAdmin где то криво копировалось ток как через  Sypex Dumper все копирование прошло без ошибок и при сохранении товара ведать база перезаписала таблицы и все заработало
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #13 : 27.10.2015, 14:47:17 »

ну попробуйте еще раз, слить через дампер базу, удалить из пхпадмина и снова дампером импортировать
Записан
JLP
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #14 : 27.10.2015, 16:00:04 »

Всем привет! Начала сегодня делать сайт на VirtueMart 3.0.10
При сохранении категории из названия категории удаляет кавычки и все, что было в них.
Например, название категории - [Интерьерные RELAX подушки "антистресс"], после сохранения остается [Интерьерные RELAX подушки ].
Изначально, после установки компонента, название сохранилось с кавычками.

Началось это наверное после того, как убрала русские буквы из alias. В administrator/components/com_virtuemart/helpers/vmtable.php в строке $unicodeslugs = VmConfig::get('transliterateSlugs',false); изменила false на true
_______

Оказывается не удаляет.. а просто не показывает в админке в редактировании категории кавычки и все что в них. В базе данных и на самом сайте все хорошо отображается
« Последнее редактирование: 27.10.2015, 16:13:44 от JLP » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #15 : 27.10.2015, 16:03:58 »

лучше так /administrator/components/com_virtuemart/virtuemart.cfg в SEO прописать translate
Код:
##SEO
    seo_disabled=0
    seo_translate=0
    seo_use_id=0

вот тема http://joomlaforum.ru/index.php/topic,294925.0.html
« Последнее редактирование: 27.10.2015, 16:11:06 от Stasweb » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet