Quote from: webzic at May 17, 2011, 08:11 AM
Сталкнулся с такой проблеммой, в админке когда присваиваешь статус заказа и примечание идёт запись данных в кодировке UTF (у меня всё в cp1251 всё остальное работает нормально) Версия shop 4.1 beta Приложил скриншот, может кто подскажет как поправить.
Можете сюда скопировать строки с 59 по 71 в файле assets/snippets/shop/include/delete_clear.inc.php ? Я хочу посмотреть, в какой кодировке у вас идет запись в БД.
$act=$_POST['act']; //iconv("windows-1251", "UTF-8",$_POST['status']); $idorder=$_POST['idorder']; if (isset($act) && $act=="update" && isset($idorder) && $idorder !="" && $idorder !="0") { $modx->db->query( " UPDATE `".$shop_order."` SET `status` = '".$_POST['status']."' WHERE `numorder` =".$idorder." ; "); $modx->db->query( " UPDATE `".$shop_order."` SET `commentadmin` = '".$_POST['commentadmin']."' WHERE `numorder` =".$idorder." ; "); echo "<span class='ok'>".$shop_lang['saveok']."</span>"; exit; }
$act=$_POST['act']; //iconv("windows-1251", "UTF-8",$_POST['status']); $idorder=$_POST['idorder']; if (isset($act) && $act=="update" && isset($idorder) && $idorder !="" && $idorder !="0") { $modx->db->query( " UPDATE `".$shop_order."` SET `status` = '".iconv("utf-8", "cp1251",$_POST['status'])."' WHERE `numorder` =".$idorder." ; "); $modx->db->query( " UPDATE `".$shop_order."` SET `commentadmin` = '".iconv("utf-8", "cp1251",$_POST['commentadmin'])."' WHERE `numorder` =".$idorder." ; "); echo "<span class='ok'>".$shop_lang['saveok']."</span>"; exit; }
Не дождалась ответа. Поставила версию 3.2.2
Все работает, но есть одно НО:
при заказе более 5 позиций база данных ругается:
« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed - Column count doesn’t match value count at row 1 »
SQL: INSERT INTO `shop_order_detail` ( `numorder` , `quantity` , `price` , `id` , `name` ) VALUES ( ’69’, ’1’, ’14500’, ’255’, ’Товарчики’,NOW());
[Copy SQL to ClipBoard]
Очевидно, что параметров в Values больше чем полей в таблице shop_order_detail
Смотрим в файл с запросами (saveorder_db.inc.php):
--кусок кода--
if($NAME_4) {
$modx->db->query( "
INSERT INTO `".$shop_order_detail."` ( `numorder` , `quantity` , `price` , `id` , `name` )
VALUES ( ’".$numorder."’, ’".$QUANTITY_4."’, ’".$PRICE_4."’, ’".$ID_4."’, ’".$NAME_4."’);
");
}
if($NAME_5) {
$modx->db->query( "
INSERT INTO `".$shop_order_detail."` ( `numorder` , `quantity` , `price` , `id` , `name` )
VALUES ( ’".$numorder."’, ’".$QUANTITY_5."’, ’".$PRICE_5."’, ’".$ID_5."’, ’".$NAME_5."’);
");
}
if($NAME_6) {
$modx->db->query( "
INSERT INTO `".$shop_order_detail."` ( `numorder` , `quantity` , `price` , `id` , `name` )
VALUES ( ’".$numorder."’, ’".$QUANTITY_6."’, ’".$PRICE_6."’, ’".$ID_6."’, ’".$NAME_6."’,NOW());
");
}
if($NAME_7) {
$modx->db->query( "
INSERT INTO `".$shop_order_detail."` ( `numorder` , `quantity` , `price` , `id` , `name` )
VALUES ( ’".$numorder."’, ’".$QUANTITY_7."’, ’".$PRICE_7."’, ’".$ID_7."’, ’".$NAME_7."’,NOW());
");
}
--итд--
Объясните, что за параметр NOW() и зачем он здесь?
Сталкнулся с такой проблеммой, в админке когда присваиваешь статус заказа и примечание идёт запись данных в кодировке UTF (у меня всё в cp1251 всё остальное работает нормально) Версия shop 4.1 beta Приложил скриншот, может кто подскажет как поправить.