Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Warning: mysqli::query(): (21000/1242) Как исправить?


Recommended Posts

Здравствуйте! При переносе данных с версии 1.5.1. на ocStore 3.0.2.0 с помощью модуля минграции A-Migration на некоторых товарах и категориях вылетет ошибка.

 

Warning: mysqli::query(): (21000/1242): Subquery returns more than 1 row in ...system/library/db/mysqli.php on line 18
Fatal error: Uncaught exception 'Exception' with message 'Error: Subquery returns more than 1 row<br />Error No: 1242<br />SELECT DISTINCT *, pd.name AS name, p.image, p.noindex AS noindex, m.name AS manufacturer, (SELECT price FROM oc30_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc30_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM oc30_product_reward pr WHERE pr.product_id = p.product_id AND pr.customer_group_id = '1') AS reward, (SELECT ss.name FROM oc30_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss. in ...system/library/db/mysqli.php on line 40

 

Во всем разбираюсь сама, так что не судите строго, если есть возможность подскажите, как убрать ошибку.:oops:

 

Почитав информацию в интернете, пришла к выводу, что эта ошибка возможна из-за дублей товаров и раньше она решалась удалением дублей в таблице oc_url_alias. Но в 3,0 такой таблицы нет. 

Link to post
Share on other sites

7 минут назад, lilit2 сказал:

Почитав информацию в интернете, пришла к выводу, что эта ошибка возможна из-за дублей товаров и раньше она решалась удалением дублей в таблице oc_url_alias. Но в 3,0 такой таблицы нет. 

есть похожая. oc_seo_url называется

Link to post
Share on other sites

Posted (edited)

Там смотрела

Edited by lilit2
Link to post
Share on other sites

9 минут назад, nikifalex сказал:

есть похожая. oc_seo_url называется

 

Там смотрела, но там сего 30 строк так сказать новосозданных SEO генератором. 

Link to post
Share on other sites

6 минут назад, lilit2 сказал:

 

Там смотрела, но там сего 30 строк так сказать новосозданных SEO генератором. 

ну значит вас обманули в том интернете. 

Link to post
Share on other sites

1 минуту назад, nikifalex сказал:

ну значит вас обманули в том интернете. 

 

Значит обманули. Но осознание не решает проблему. 

Link to post
Share on other sites

вы приведите запрос целиком. В нем несколько поздапросов. Так вот какой-то возвращает больше одной строки.

Какой именно неизвестно. открывайте phpmyadmin и медитируйте до просветления

Link to post
Share on other sites

Posted (edited)
23 минуты назад, nikifalex сказал:

вы приведите запрос целиком. В нем несколько поздапросов. Так вот какой-то возвращает больше одной строки.

Какой именно неизвестно. открывайте phpmyadmin и медитируйте до просветления

Warning: mysqli::query(): (21000/1242): Subquery returns more than 1 row in /home/sivtermo/sivtermo.com.ua/test/system/library/db/mysqli.php on line 18
Fatal error: Uncaught exception 'Exception' with message 'Error: Subquery returns more than 1 row<br />Error No: 1242<br />SELECT DISTINCT *, pd.name AS name, p.image, p.noindex AS noindex, m.name AS manufacturer, (SELECT price FROM oc30_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc30_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM oc30_product_reward pr WHERE pr.product_id = p.product_id AND pr.customer_group_id = '1') AS reward, (SELECT ss.name FROM oc30_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss. in /home/sivtermo/sivtermo.com.ua/test/system/library/db/mysqli.php on line 40

 

Это все что выдает при переходе на товар.

 

В phpmyadmin медитирую уже пару дней, просветление не наступает. Решила спросить тут. 

Edited by lilit2
Link to post
Share on other sites

17 минут назад, lilit2 сказал:

В phpmyadmin медитирую уже пару дней

допустим вот вы работаете кассиром в магните, и зарабатываете например 1000 руб в день.

Иного за 2 дня могли бы заработать 2000 руб.

 

А заплатить кому-то за решение этой проблемы хватило бы 500 руб. Ну еще за 500 вам бы рассказали подробно в чем проблема.

Итого, заказав услугу вы съэкономили бы 1000 руб, что весьма немало.

Плюс вместо двух дней на все это ушел бы час времени, а остальное время вы могли бы посвятить семье, например

Link to post
Share on other sites

9 минут назад, nikifalex сказал:

допустим вот вы работаете кассиром в магните, и зарабатываете например 1000 руб в день.

Иного за 2 дня могли бы заработать 2000 руб.

 

А заплатить кому-то за решение этой проблемы хватило бы 500 руб. Ну еще за 500 вам бы рассказали подробно в чем проблема.

Итого, заказав услугу вы съэкономили бы 1000 руб, что весьма немало.

Плюс вместо двух дней на все это ушел бы час времени, а остальное время вы могли бы посвятить семье, например

 

Это прекрасно. Но как же саморазвитие? Мне можно не решать проблему, а указать направление. 

И, к сожалению, вряд ли проблема решится за 500 руб.  

 

Link to post
Share on other sites

39 минут назад, lilit2 сказал:

 

Это прекрасно. Но как же саморазвитие? Мне можно не решать проблему, а указать направление. 

И, к сожалению, вряд ли проблема решится за 500 руб.  

 

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

например начать с таблицы oc_product и пройти все таблицы продукта.

Edited by Dimasscus
Link to post
Share on other sites

17 минут назад, Dimasscus сказал:

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

например начать с таблицы oc_product и пройти все таблицы продукта.

 

В том то и проблема, что я сначала все просмотрела, а потом уже начала писать на форум. И ни в таблицах категорий , ни в таблицах oc_product я дублей не нашла. На всякий случай проверила и производителей, но нет. Нет там дублей. Вот и спрашиваю, может есть  какая то таблица связанная с ними, а я ее не просмотрела. Или может это из-за сео генератора такая проблема или может мультиязычность дает такой эффект. 

 

В общем если Вы говорите дубль, значит пойду искать снова. Спасибо. 

Link to post
Share on other sites

18 минут назад, lilit2 сказал:

 

В том то и проблема, что я сначала все просмотрела, а потом уже начала писать на форум. И ни в таблицах категорий , ни в таблицах oc_product я дублей не нашла. На всякий случай проверила и производителей, но нет. Нет там дублей. Вот и спрашиваю, может есть  какая то таблица связанная с ними, а я ее не просмотрела. Или может это из-за сео генератора такая проблема или может мультиязычность дает такой эффект. 

 

В общем если Вы говорите дубль, значит пойду искать снова. Спасибо. 

это не я говорю. это ошибка говорит. вы как дубли проверяли? запросом к таблице или построчно глазами?

Скиньте дамп бд. Я попробую помочь

Edited by Dimasscus
Link to post
Share on other sites

1 час назад, Dimasscus сказал:

это не я говорю. это ошибка говорит. вы как дубли проверяли? запросом к таблице или построчно глазами?

Скиньте дамп бд. Я попробую помочь

Глазами построчно. Я еще совсем новичок.

Link to post
Share on other sites

1 час назад, lilit2 сказал:

Глазами построчно. Я еще совсем новичок.

Запросом надо. У вас могут бьіть дубли в групах, продуктах, производителях. Без бд помочь не смогу

Link to post
Share on other sites

В 28.03.2021 в 16:24, Dimasscus сказал:

Запросом надо. У вас могут бьіть дубли в групах, продуктах, производителях. Без бд помочь не смогу

 

Искала запросами по базе -  не нашла.

 

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

Ошибок больше нет.

 

Спасибо.

 

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.