0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 4510 Просмотров
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Код
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

  • Завсегдатай
  • 1492
  • 24 / 0
Информация о системе

куда копирую
Платформа, на которой работает 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

  • Завсегдатай
  • 1013
  • 75 / 3
"С днем Независимости". Уберите двойные кавычки. Или запишите так
Код: sql
Открытка \"С днем Независимости\" 195-135
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Так при переходе по всем ссылкам такая ошибка если зайти в любой товар.
*

Stasweb

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
дело скорей всего именно в кавычках, как уже сказали.
В базе описания товаров хранятся именно с двойными кавычками?

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

и на всякий случай проверьте кодировку таблиц БД (не всей бд а именно таблиц)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Не совсем, когда внимательней глянул и увидел
Код: 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
Ошибка в 2 последних строчках. Мало того что в product_price <= некорректное значение пихает, так еще и имена полей без префиксов
Решил не связываться. Если VM такие запросы генерит, сносить его надо, а не запросы править.
*

beliyadm

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

Цитировать
так еще и имена полей без префиксов
если имя поля в пределах задействованных таблиц уникально - то и префикс совершенно не нужен, это нормально
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

passer

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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Включил отладку и при загрузки страницы товара выдает

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

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
так все-таки - в таблицах в этих что было с кодировкой? Если там была неправильная - вполне возможно слить дамп, изменить кодировку и залить обратно (я про второй сайт).
Сначала же надо понять причину
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Stasweb

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
ну попробуйте еще раз, слить через дампер базу, удалить из пхпадмина и снова дампером импортировать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

JLP

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

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

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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
лучше так /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, 15:11:06 от Stasweb »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки в админке VirtueMart 3.4.2

Автор face2005

Ответов: 0
Просмотров: 602
Последний ответ 04.05.2019, 18:47:25
от face2005
Fatal error: Call to undefined method JController::getInstance() in......zo2fram

Автор dir.repart

Ответов: 7
Просмотров: 1036
Последний ответ 05.03.2019, 17:19:53
от draff
Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTIO

Автор dir.repart

Ответов: 1
Просмотров: 1099
Последний ответ 04.03.2019, 17:14:40
от draff
Ошибки при выключенной OPC

Автор denism300

Ответов: 0
Просмотров: 708
Последний ответ 25.12.2018, 18:51:14
от denism300
vmError: Сохранить не удалось из-за ошибки: В доступе отказано

Автор Melkiy

Ответов: 3
Просмотров: 886
Последний ответ 11.11.2018, 17:27:56
от lexxbry