Грешка в сайт на opencart

nobreak

Member
Здравейте. Сега забелязах като вкарах една нова оферта и ми излезе тази грешка "Notice: Undefined index: total in /home/rezachk/public_html/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 629", а офертата е тази - http:// rezachki.com/vodni-pompi/potopyaema-pompa-za-mrasna-voda-mega-q750-b54r-drenazhna. Само тук дава грешка ама защо...?
 
От: Грешка в сайт на opencart

Най-вероятно не си добавил стойност в полето total
Можеш да скриеш това с
error_reporting(E_ALL ^ E_NOTICE);
Не е добра идея но не е фатално
 
От: Грешка в сайт на opencart

Ей няма да се научите да си задавате въпросите като хората ...

Бол ли да хвърляме или на кафе да гледаме какво има в тоя /home/rezachk/public_html/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 629
 
От: Грешка в сайт на opencart

Здравейте. Сега забелязах като вкарах една нова оферта и ми излезе тази грешка "Notice: Undefined index: total in /home/rezachk/public_html/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 629", а офертата е тази - http:// rezachki.com/vodni-pompi/potopyaema-pompa-za-mrasna-voda-mega-q750-b54r-drenazhna. Само тук дава грешка ама защо...?


Защото някой от модулите, които ползваш не е написан както трябва. За да оправиш "грешката", трябва да намериш въпросния ред (посочен от теб във третия ти пост) в xml файла на въпросния модул в папка vqmod/xml и да го направиш по следния начин:

PHP:
if (isset($query->row['total']) && $query->row['total'] >= 1) {

Успех в намирането му!

П.П. И все пак това може да не е най-правилното решение, зависи от логиката/смисъла на въпросния скрипт.
 
От: От: Грешка в сайт на opencart

Ей не се научихте първо да биете, после да се карате :)

Това е въпросният ред: if ($query->row['total'] >= 1) {
Както си и знаех няма проверка isset($query->row['total'])

Стан ти го е дал.
 
От: Грешка в сайт на opencart

Добре е да се види в кой метод се добавя този код. Възможно е стойността на свойството $query->row да е масив върнат от друга последваща заявка, а не от тази, която автора на модула е очаквал, щом има недефиниран индекс от масива образуван от върнатото резултатно множество. Може би някой друг модул преди това добавя нова заявка ползвайки същото име на променлива, или да има някакво друго преплитане.
 
От: Грешка в сайт на opencart

Добре е да се види в кой метод се добавя този код.

оригиналния файл е на 618 линии а при тебе на 629. Нещо променя модел-продукт файла, но не е задължително това да е проблема.
Прочети внимателно vqcache на контролера и виж какво се случва или го дай тука и ние да погледнем.
 
От: От: Грешка в сайт на opencart

Интересното е, че си вкарвам други оферти и не дава грешка, а само на тази....Изтривам я и пак я въвеждам. но пак ми дава грешка...

Защото някой от модулите, които ползваш не е написан както трябва. За да оправиш "грешката", трябва да намериш въпросния ред (посочен от теб във третия ти пост) в xml файла на въпросния модул в папка vqmod/xml и да го направиш по следния начин:

PHP:
if (isset($query->row['total']) && $query->row['total'] >= 1) {

Успех в намирането му!

П.П. И все пак това може да не е най-правилното решение, зависи от логиката/смисъла на въпросния скрипт.

Това върши работа, само ме притеснява да не променя нещо друго...

оригиналния файл е на 618 линии а при тебе на 629. Нещо променя модел-продукт файла, но не е задължително това да е проблема.
Прочети внимателно vqcache на контролера и виж какво се случва или го дай тука и ние да погледнем.

Къде да прочета error log-а ли, че не съм много наясно още със тази система? Тепърва я разучавам...

п.п. Сега се сещам, когато вкарвах тази оферта нещо сървъра явно е бил натоварен защото ми даде някаква грешка 503 ли беше не помня и офертата ми не се записа, че се наложи да я въвеждам пак...
 
Последно редактирано:
От: Грешка в сайт на opencart

Щеше да е хубаво поне да кажеш какви версии използваш... Вероятно причината е непопълнено поле в базата данни, колона total.
 
От: От: Грешка в сайт на opencart

Това върши работа, само ме притеснява да не променя нещо друго...

Не, по абсолютно никакъв начин не променя логиката и условието в if конструкцията. Разбра ли от кой модул е ?

п.п. Сега се сещам, когато вкарвах тази оферта нещо сървъра явно е бил натоварен защото ми даде някаква грешка 503 ли беше не помня и офертата ми не се записа, че се наложи да я въвеждам пак...

Интересно е как може да се скапе заявката за вкарване на офертата, така че след това alias-a(прякора) "total" на резултата от sql функцията COUNT да не съществува. Определено трябва да хвърлим един поглед на метода, в чието тяло е поместен въпросния ред. Намери го във файла от първия ти пост като следваш пътя посочен там.
 
От: Грешка в сайт на opencart

Според мен нещо ти се е омазал продуктовия номер. Ако го въведеш с друг номер няма ли да стане работата? Иначе ако искаш да задълбаеш ще трябва да ровиш в базата данни, реда, който ти гърми е 627. Там ти връща празна стойност за total.
 
От: Грешка в сайт на opencart

Ахам, просто в заявката има и групиране, затова при не намерено продуктово id се връща празен резултат, оттам и недефиниран индекс. Можеш да останеш с решението, което ти дадох по-горе с проверка за дефинирана променлива. Има и други варианти, примерно да се провери за броя редове ($query->num_rows) върнати като резултатно множество.
 
От: Грешка в сайт на opencart

Според мен нещо ти се е омазал продуктовия номер. Ако го въведеш с друг номер няма ли да стане работата? Иначе ако искаш да задълбаеш ще трябва да ровиш в базата данни, реда, който ти гърми е 627. Там ти връща празна стойност за total.

Не става като му сменя номера.

Ахам, просто в заявката има и групиране, затова при не намерено продуктово id се връща празен резултат, оттам и недефиниран индекс. Можеш да останеш с решението, което ти дадох по-горе с проверка за дефинирана променлива. Има и други варианти, примерно да се провери за броя редове ($query->num_rows) върнати като резултатно множество.

За сега ще остана с това решение, понеже всичко си работи нормално. Благодаря ти, много ми помагаш!
 
От: Грешка в сайт на opencart

Грешката идва от тази функция - public function getFullPath($product_id) {
която е добавена във файла от нещо с vqmod, т.е. в оригиналния я няма. За да се провери ми трябва контролера на продукт а не модел.
Не е хубаво да се оставят така грешки особено в продуктовата страница. Провери кой екстеншън ти променя продукта и търси там.
 
От: Грешка в сайт на opencart

Грешката идва от тази функция - public function getFullPath($product_id) {
която е добавена във файла от нещо с vqmod, т.е. в оригиналния я няма. За да се провери ми трябва контролера на продукт а не модел.
Не е хубаво да се оставят така грешки особено в продуктовата страница. Провери кой екстеншън ти променя продукта и търси там.

Това ли http://dox.bg/files/dw?a=eb0335bf4e
 

Горе