Проблема с модулем Project или с темой cpanel

Быстрый переход:
Александр

Александр

Member
#1   18 мая 2016 11:27

после установки новой темы для админ панели перестала работать главная страница админки когда включаю модуль проекты если сменить на дефолтовую версию то все нормально.
но если переключить на нужную тему то при заходе в админ панель вижу вот это
Fatal error
2016-05-17 19:39

SQL error 42000: Syntax error or access violation: 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 'WHERE item_state='0'' at line 1

#0  cot_diefatal(SQL error 42000: Syntax error or access violation: 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 'WHERE item_state='0'' at line 1) called at [/home/s/stysty3t/timeg/public_html/system/databas e.php:574]
#1  CotDB->query(SELECT COUNT(*) FROM  WHERE item_state='0') called at [/home/s/stysty3t/timeg/public_html/modules/projec ts/projects.admin.home.php:25]
#2  include(/home/s/stysty3t/timeg/public_html/modules /projects/projects.admin.home.php) called at [/home/s/stysty3t/timeg/public_html/modules/cpanel /inc/cpanel.main.php:116]
#3  cpanel_MainController->indexAction() called at [/home/s/stysty3t/timeg/public_html/modules/cpanel /cpanel.php:45]
#4  require_once(/home/s/stysty3t/timeg/public_html/mo dules/cpanel/cpanel.php) called at [/home/s/stysty3t/timeg/public_html/index.php:176]

нужно устранить конфликт помогите
            

Добавлено 7 часов спустя:

Ребят поможет кто?

Отредактировано: Stymul (18.05.2016 21:54, 1 год назад)
Алексей

Алексей

Administrator
#2   19 мая 2016 03:31

Никакого конфликта нет. Это ошибка в модуле projects. Приведенный Вами же стек вызовов содержит ответ на Ваш вопрос :)

#1  CotDB->query(SELECT COUNT(*) FROM  WHERE

Как видите между  FROM и WHERE должно быть название таблицы, а его нет. Это и есть причина ошибки запроса.

Судя по всему автор Вашего модуля подставляет имя таблицы из глобальной переменной. А использовать глобальные переменные плохо (это приводит к подобным проблемам). И не проверять их существование перед использованием тоже плохо.

Ошибка возникает в файле modules/projec ts/projects.admin.home.php строка 25. Исправить можно, например объявив переменную которая там используется как глобальную.

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

goldwizard13

Member
#3   21 мая 2016 22:11

У меня таже проблема, строка 25

$publicprojects = $db->query("SELECT COUNT(*) FROM $db_projects WHERE item_state='0'");

 подставил `flance_projects` также поменял три строки в модуле фолио `flance_folio` , ошибка пропала. нужно менять во всех модулях биржи?, но это больше вопрос к авторам бирже, что посоветуете?

 

Александр

Александр

Member
#4   22 мая 2016 23:02
#10337 Alex:

Никакого конфликта нет. Это ошибка в модуле projects. Приведенный Вами же стек вызовов содержит ответ на Ваш вопрос :)

#1  CotDB->query(SELECT COUNT(*) FROM  WHERE

Как видите между  FROM и WHERE должно быть название таблицы, а его нет. Это и есть причина ошибки запроса.

Судя по всему автор Вашего модуля подставляет имя таблицы из глобальной переменной. А использовать глобальные переменные плохо (это приводит к подобным проблемам). И не проверять их существование перед использованием тоже плохо.

Ошибка возникает в файле modules/projec ts/projects.admin.home.php строка 25. Исправить можно, например объявив переменную которая там используется как глобальную.

Прошу прощения а не обьясните как мне ее обьявить?

Алексей

Алексей

Administrator
#5   23 мая 2016 10:52

Предположим ваша переменная называется $db_some_table. Перед ее первым использованием вставте строку

global $db_some_table;

Она сообщает php что переменную $db_some_table следует брать из глобаного уровня видимости.

Быстрота и надежность... Ну и красота тоже, конечно

Александр

Александр

Member
#6   23 мая 2016 13:41
#10344 Alex:

Предположим ваша переменная называется $db_some_table. Перед ее первым использованием вставте строку

global $db_some_table;

Она сообщает php что переменную $db_some_table следует брать из глобаного уровня видимости.

Спасибо большое помогло и все работает..

testovskiy

testovskiy

Member
#7   13 октября 2016 12:00

Так какие и куда внести изменения в коде, в случае с 'projects' и 'folio'?

Отредактировано: testovskiy (13.10.2016 12:35, 1 год назад)
Алексей

Алексей

Administrator
#8   13 октября 2016 23:48

Ответы уже написаны выше

Быстрота и надежность... Ну и красота тоже, конечно

testovskiy

testovskiy

Member
#9   14 октября 2016 10:20

А можно по точнее, для самых... :) Править надо cpanel или projects? Вставлял в projects.admin - global $...; не помогло

Алексей

Алексей

Administrator
#10   14 октября 2016 15:38
#10337 Alex:
CotDB->query(SELECT COUNT(*) FROM  WHERE

Как видите между  FROM и WHERE должно быть название таблицы, а его нет. Это и есть причина ошибки запроса.

Ошибка возникает в модуле projects, похоже что в файле modules/projec ts/projects.admin.home.php. Его сейчас нет под руками, так что сказать конкретнее не смогу. Исправить можно.

Найдите в файле этого модуля запрос. Там в запросе между 'FROM' и 'WHERE' должна быть какая-то переменная.Объявите ее как глобальную.

Перед запросом выше добавте строку:

global $db_some_table;

где $db_some_var - это название этой самой переменной.

 

Быстрота и надежность... Ну и красота тоже, конечно

impyros

impyros

Member
#11   20 декабря 2016 13:55
#10383 testovskiy:

А можно по точнее, для самых... :) Править надо cpanel или projects? Вставлял в projects.admin - global $...; не помогло

/modules/projects/projects.admin.home.php        над 25 строкой вставить global $db_projects;

/modules/folio/folio.admin.home.php                  над 25 строкой вставить global $db_folio;

/modules/market/market.admin.home.php            над 25 строкой вставить global $db_market;

больше ошибок небыло , по крайней мере у меня