unick 0 Опубликовано 24 марта, 2008 Жалоба Share Опубликовано 24 марта, 2008 Сегодня хостер отключил магаз за загрузку процессора на сервере. Загрузил сервер селект с выборкой товара, из письма: Запросы: SELECT \n\t\tp.products_id as v_products_id, \n\t\tp.products_model as v_products_model, \n\t\tp.products_ima Нагрузка: 99% Провайдер написал: дело в скрипте магаза. Решили включить кеширование запросов. На магазах начали валиться циклично: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/emarket/public_html/barbie/inc/vam_db_fetch_array.inc.php on line 39 Что можно сделать? Что это может быть? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2008 Жалоба Share Опубликовано 24 марта, 2008 Unick А какая версия VaM Shop. Где именно выводится Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/emarket/public_html/barbie/inc/vam_db_fetch_array.inc.php on line 39 ?! На главной странице или на всех страницах. Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 25 марта, 2008 Автор Жалоба Share Опубликовано 25 марта, 2008 версия 1.35 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/emarket/public_html/barbie/inc/vam_db_fetch_array.inc.php on line 39 выводится на главной странице, на информационных страницах. если переходить в категории, ошибка пропадает. ну и выводится она только при включенном "кеширование запросов к БД" Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2008 Жалоба Share Опубликовано 25 марта, 2008 Unick А есть возможность скачать архив с 1.42 версией и взять из него файлы. К примеру: /shop_content.php /article_info.php /articles.php /templates/шаблон/source/boes/articles.php Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 25 марта, 2008 Автор Жалоба Share Опубликовано 25 марта, 2008 эта версия сейчас только клиентам доступна? потому что, насколько мне понятно, в демке сейчас 1.40 лежит? дело в том, что мы покупали магаз 1.35, пользователь GROL, но данные для авторизации уже того ;) если что, пиши в личку Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2008 Жалоба Share Опубликовано 25 марта, 2008 Unick Я вот только что демку обновил до 1.42 - vamhost.ru/vamshop-demo.zip Вот ты ж на форум заходишь и на сайт под логином Unick Зайди на vamshop.ru Слева в боксе Вход введи логин и пароль свой, если нормально авторизуешься, затем справа вверху нажми Магазин и оформи заказ в магазине под новым логином, я тебе доступ открою. Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 25 марта, 2008 Автор Жалоба Share Опубликовано 25 марта, 2008 есть, авторизация нормально прошла. загвоздка только с оформлением заказа - пришлось выбрать способ оплаты вебмани, а потом отказаться от оплаты, но вроде заказ должен был уйти но перечесленные тобой файлы я пока могу и из демки надергать, да? Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 25 марта, 2008 Автор Жалоба Share Опубликовано 25 марта, 2008 Взяли файлы из демки, которые ты написал - не помогло. В личку ушла ссылка на один из магазов, где вылезла эта проблема. Сейчас включено кеширование запросов. Как оказалось, эта ошибка не только на главной, а есть еще в некоторых категориях, например, разные товары и игрушки. Но там 1 ворнинг, а на главной - 5. Такое впечатление, что бока с целостностью данных. И возможно на хостере проблемы были именно с этим. Может быть, ты подскажешь хоть направление, куда можно рыть, потому что по ворнингу совершенно непонятно, что именно слетает. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2008 Жалоба Share Опубликовано 25 марта, 2008 Unick Просто я точно не помню какие файлы нужно заменить (в текущей версии такой ошибки быть не должно), я там много всяких правил. Нужно методом тыка определить. Попробуй тогда в /templates/шаблон/index.html Поубирать все метки боксов кроме допустим {$box_CATEGORIES} и посмотреть, будет ли ошибка. Если нет, возвращай метки боксов по одному и смотри в какой именно метке проблема. или если хочешь, дай мне доступ на ftp я гляну. Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 26 марта, 2008 Автор Жалоба Share Опубликовано 26 марта, 2008 удалось отловить ошибку, отключаа боксы но не в /templates/шаблон/index.html, а в template/source/boxes.php в результате таки оказалась нарушена целостность данных - некоторые товары ссылаются не несуществующих производителей только все равно кажется, что изначальная проблема с загрузкой процессора на сервере сюда отношения не имеет. что ты можешь посоветовать по самой изначальной проблеме - переход на 1.42 поможет? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 марта, 2008 Жалоба Share Опубликовано 26 марта, 2008 А ты прбовал взять папку /templates/шаблон/soruce/boxes и переписать к себе. Я просто все эти ошибки уже исправлял, вот о которой ты написал. Нужно просто нужные файлы заменить и будет без ошибок. Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 26 марта, 2008 Автор Жалоба Share Опубликовано 26 марта, 2008 С боксами попробую. Но сегодня оказалось, что ошибка с боксами - это мелочь, провайдер прислал точную причину, почему магазины вешают сервер - их сильно нагружает пакетная обработка изображений /admin/module_export.php, которой активно пользуются клиенты. Были ли какие-то улучшения в области этого модуля со времен 1.35? Что можно сделать, чтобы "разгрузить" этот скрипт? Ссылка на сообщение Поделиться на другие сайты
one 0 Опубликовано 26 марта, 2008 Жалоба Share Опубликовано 26 марта, 2008 А почему собственно клиенты используют этот модуль и что за клиенты? Если посетители шопа то они никак не могут его использовать. А так действительно в силу своей специфики этот модуль создает нагрузку на сервер при обработки картинок. Тут уж ничего неподелаешь. Да и модуль то не часто используеться. Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 26 марта, 2008 Автор Жалоба Share Опубликовано 26 марта, 2008 one имеются в виду клиенты, которым мы делали магазины. некоторые сами управляют товаром. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 марта, 2008 Жалоба Share Опубликовано 26 марта, 2008 Unick Пока к сожалению модуль не исправлял, уже на форуме говорили о том, что пакетная обработка грузит сервер, но пока как выйти из ситуации я не знаю. Если товары добавляются просто по одному через админку, временно можно просто скрыть пункт XT-Модули в Админке - Модули, что б не было видно пакетной обработки. Но если что-то и удастся сделать, мне кажется кардинально снизить нагрузку на этот скрипт не получится, всё-таки обработка картинок, а тем более если много товаров, это очень ресурсоёмкая задача, насколько я понимаю. Ссылка на сообщение Поделиться на другие сайты
one 0 Опубликовано 26 марта, 2008 Жалоба Share Опубликовано 26 марта, 2008 one имеются в виду клиенты, которым мы делали магазины. некоторые сами управляют товаром. Ну если так то судя по всему они постоянно запускают этот модуль что и грузит сервер и хостеру ненравиться а вот почему они это делают надо выяснить у них... Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 14 апреля, 2008 Автор Жалоба Share Опубликовано 14 апреля, 2008 опять возникла на одном магазе проблема с кешированием запросов к БД. вылазит при копировании товара с картинкой. например, копируется один товар в одну категорию. там по коду вызывается функция класса "категория" duplicate_product а в ней , после проверки у копируемого товара наличия картинки, создается имя картинки у нового товара: vamDBquery("UPDATE ".TABLE_PRODUCTS." SET products_image = '".$dup_products_image_name."' WHERE products_id = '".$dup_products_id."'"); когда включено кеширование, то в функции vam_db_queryCached валится строка $record = vam_db_fetch_array($result) при попытке взять результат вышеуказанного запроса. чем полечить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 апреля, 2008 Жалоба Share Опубликовано 15 апреля, 2008 Попробуй заменить: $record = vam_db_fetch_array($result)[/code] на: [code]$record = vam_db_fetch_array($result, true) Подскажи, в какой конкретно файле эта строка находится?! Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 15 апреля, 2008 Автор Жалоба Share Опубликовано 15 апреля, 2008 ведь проблема-то в чем скорее всего, что функция mysql_query, которая внутри всех врапперов таки выполняет запрос на UPDATE, возвращает просто true из определения: >>Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или >>FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и >>FALSE в случае ошибки. а функция vam_db_queryCached пытается работать с этим "true" как с указателем на результат запроса, применяя mysql_fetch_array ... Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 15 апреля, 2008 Автор Жалоба Share Опубликовано 15 апреля, 2008 Подскажи, в какой конкретно файле эта строка находится?! находится в vam_db_queryCached.inc.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 апреля, 2008 Жалоба Share Опубликовано 15 апреля, 2008 В каком файле этот код? Подскажи, я гляну, в /admin/includes/classes/categories.php ?! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 апреля, 2008 Жалоба Share Опубликовано 15 апреля, 2008 Нет, я имею в виду вот этот: vamDBquery("UPDATE ".TABLE_PRODUCTS." SET products_image = '".$dup_products_image_name."' WHERE products_id = '".$dup_products_id."'");[/code] Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 15 апреля, 2008 Автор Жалоба Share Опубликовано 15 апреля, 2008 В каком файле этот код? Подскажи, я гляну, в /admin/includes/classes/categories.php ?! да в /admin/includes/classes/categories.php в function duplicate_product($src_products_id, $dest_categories_id) Ссылка на сообщение Поделиться на другие сайты
unick 0 Опубликовано 15 апреля, 2008 Автор Жалоба Share Опубликовано 15 апреля, 2008 если поставить $record = vam_db_fetch_array($result, true), то Warning: current() [function.current]: Passed variable is not an array or object in /home/emarket/public_html/teplo/inc/vam_db_fetch_array.inc.php on line 30Warning: next() [function.next]: Passed variable is not an array or object in /home/emarket/public_html/teplo/inc/vam_db_fetch_array.inc.php on line 31Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/emarket/public_html/teplo/inc/vam_db_fetch_array.inc.php on line 39Warning: current() [function.current]: Passed variable is not an array or object in /home/emarket/public_html/teplo/inc/vam_db_fetch_array.inc.php on line 30Warning: next() [function.next]: Passed variable is not an array or object in /home/emarket/public_html/teplo/inc/vam_db_fetch_array.inc.php on line 31[/code] Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 апреля, 2008 Жалоба Share Опубликовано 15 апреля, 2008 Ты ж не там меняешь. Нужно в /admin/includes/classes/categories.php заменить: $product = vam_db_fetch_array($product_query);[/code] на: [code] $product = vam_db_fetch_array($product_query, true); Попробуй так. В /inc/vam_db_featch_array.inc.php не нужно ничего менять. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения