Автор Тема: что-то поменяли на хостинге и теперь вываливает ошибку..  (Прочитано 14190 раз)

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
Помогите советом или делом) что-то поменяли на хостинге и теперь вываливает ошибку:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 72 bytes) in /home/u543787617/public_html/includes/admin/sub/catalog_products_edit.php on line 436
Меняю версию рhp то ошибка поменяется то пропадет но в обоих случаях не возможно редактировать карту товара или создать новую.
Вот еще одна ошибка : Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in /home/u543787617/public_html/includes/database/mysql.php on line 72

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
Готовы платить за помощь.. Немного.. Сайт практически не коммерческий.. Но нужен в работе...

Оффлайн Petsa

  • Legosp developer
  • Пользователь
  • *****
  • Сообщений: 22
    • Просмотр профиля
 
На сервере установлен лимит на выполнение скрипта, и когда вы заходите на страницу редактирования товара, то этот лимит превышается. Судя по всему у вас очень много созданих доп. характеристик к товарам, и когда вы заходите на страницу редактирования товара происходит выборка из таблицы характеристик (это делается для того что бы вытянуть характеристики товара, который вы собираетесь редактировать), в результате чего и превышается лимит.

Для решения проблемы можно повысить этот лимит в файле .htaccess (лежит в корне сайта). Для этого пропишите в файле в самом конце строку  php_value max_execution_time 100. Если не поможет, попробуйте вместо 100 написать 200 и т.д.

Это может решить проблему но страница будет все равно долго грузится. Поэтому лучше всего переписать ту часть файла catalog_products_edit.php  где делается выборка с таблицы характеристик, другими словами оптимизировать код

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
Спасибо большое, попробую. В скорости загрузки нет особого приоритета. Главное ошибку убрать и функциональность восстановить. Так как а скором времени планируется переход на опенкарт.

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
Спасибо большое, попробую. В скорости загрузки нет особого приоритета. Главное ошибку убрать и функциональность восстановить. Так как а скором времени планируется переход на опенкарт.

помогло спасибо, правда редактирование в карте товара так и не заработало..

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля

[/quote]

помогло спасибо, правда редактирование в карте товара так и не заработало..
[/quote]

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

Оффлайн Petsa

  • Legosp developer
  • Пользователь
  • *****
  • Сообщений: 22
    • Просмотр профиля
в файле /includes/admin/sub/catalog_products_edit.php
можно закоментировать код:   
 $sql_op = 'select DISTINCT P_variant.variantID, P_variant.name name_var, P_opt.optionID optionID, P_opt.name opt_name, P_val.* from ' . PRODUCT_OPTIONS_VAL_TABLE . ' as P_variant LEFT JOIN ' . PRODUCT_OPTIONS_V_TABLE . ' as P_val on (P_val.variantID=P_variant.variantID) LEFT JOIN ' . PRODUCT_OPTIONS_TABLE . ' as P_opt on (P_val.optionID=P_opt.optionID) order by P_variant.sort_order';    $q      = db_query($sql_op); $filtr_options=array();    while ($frow = db_assoc_q($q))        $filtr_options[$frow['opt_name']][] = $frow;    $smarty->assign("filtr_options", $filtr_options);    $options      = db_arAll("select o.* from " . PRODUCT_OPTIONS_TABLE . ' as o, ' . PRODUCT_OPTIONS_VAL_TABLE . ' as ov  where ov.optionID=o.optionID group by o.optionID order by o.sort_order');    $options_list = array();    foreach ($options as $val) {        $t = db_arAll("select * from " . PRODUCT_OPTIONS_VAL_TABLE . " as ov where ov.optionID=" . $val['optionID'] . " order by ov.sort_order");        foreach ($t as $key => $v) {            $sql                      = "select `price_surplus`,`default`,`picture` from " . PRODUCT_OPTIONS_V_TABLE . " as pov where " . $v['variantID'] . "=pov.variantID and pov.productID=" . $_GET['productID'];            $m                        = db_assoc($sql);            $t[$key]['price_surplus'] = $m['price_surplus'];            $t[$key]['default']       = $m['default'];            $t[$key]['picture']       = $m['picture'];        }        $options_list[$val['optionID']]['val'] = $t;        unset($t);        $options_list[$val['optionID']]['name'] = $val['name'];    }    $smarty->assign("options_list", $options_list);

начинается он предположительно с 435 строки

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
в файле /includes/admin/sub/catalog_products_edit.php
можно закоментировать код:   
начинается он предположительно с 435 строки

не совсем понял как закомментировать)  замена кода на ваш выдала вот такую ошибку

Parse error: syntax error, unexpected T_VARIABLE in /home/u543787617/public_html/includes/admin/sub/catalog_products_edit.php on line 433

видимо что-то скопировалось не правильно .. или в коде где-то что-то лишнее..

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
$sql_op = 'select DISTINCT P_variant.variantID, P_variant.name name_var, P_opt.optionID optionID, P_opt.name opt_name, P_val.* from ' . PRODUCT_OPTIONS_VAL_TABLE . ' as P_variant LEFT JOIN ' . PRODUCT_OPTIONS_V_TABLE . ' as P_val on (P_val.variantID=P_variant.variantID) LEFT JOIN ' . PRODUCT_OPTIONS_TABLE . ' as P_opt on (P_val.optionID=P_opt.optionID) order by P_variant.sort_order';
    $q      = db_query($sql_op); $filtr_options=array();
    while ($frow = db_assoc_q($q))
        $filtr_options[$frow['opt_name']][] = $frow;
    $smarty->assign("filtr_options", $filtr_options);
    $options      = db_arAll("select o.* from " . PRODUCT_OPTIONS_TABLE . ' as o, ' . PRODUCT_OPTIONS_VAL_TABLE . ' as ov  where ov.optionID=o.optionID group by o.optionID order by o.sort_order');
    $options_list = array();
    foreach ($options as $val) {
        $t = db_arAll("select * from " . PRODUCT_OPTIONS_VAL_TABLE . " as ov where ov.optionID=" . $val['optionID'] . " order by ov.sort_order");
        foreach ($t as $key => $v) {
            $sql                      = "select `price_surplus`,`default`,`picture` from " . PRODUCT_OPTIONS_V_TABLE . " as pov where " . $v['variantID'] . "=pov.variantID and pov.productID=" . $_GET['productID'];
            $m                        = db_assoc($sql);
            $t[$key]['price_surplus'] = $m['price_surplus'];
            $t[$key]['default']       = $m['default'];
            $t[$key]['picture']       = $m['picture'];

вот мой кусок кода.. кстати тут что-то с текстовым редактором , хотел вставить код но кнопка не активна..

Оффлайн Petsa

  • Legosp developer
  • Пользователь
  • *****
  • Сообщений: 22
    • Просмотр профиля
Нужно закомментировать код который написал, заменять нечего не нужно.

Поставьте в начале кода " /* " и в конце " */ "
Пример:
/*

Код код код

*/

Оффлайн JeykeY

  • Пользователь
  • **
  • Сообщений: 46
    • Просмотр профиля
Еще раз большое спасибо! закомментировал  все ок стало.
а что привело к такой ситуации не подскажите ? ведь все то было ок..