Jump to content

Не работает переход по страницам во вкладке "все заказы"


Recommended Posts

При попытке перехода по страницам, на вкладке "все заказы" - выпадает ошибка:

Warning: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay [SELECT o.id, o.delivery_id, o.delivery_price, o.separate_delivery, o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_discount, o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status, o.url, o.total_price, o.note FROM s_orders AS o LEFT JOIN s_orders_labels AS ol ON o.id=ol.order_id WHERE 1 ORDER BY status, id DESC LIMIT 21820, 20 ] in /htdocs/api/Database.php on line 105

Warning: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay in /htdocs/api/Database.php on line 150

Warning: Invalid argument supplied for foreach() in /htdocs/api/Orders.php on line 121

Всего заказов в базе 21831.

 

До этого вкладка "все заказы" вообще не открывалась, удалил около 1000 ненужных заказов и она стала работать.

Link to post
Share on other sites

C выводом через

$id_filter $status_filter $user_filter $keyword_filter $label_filter $modified_since_filter GROUP BY o.id ORDER BY status, id DESC $sql_limit", "%Y-%m-%d");

ошибки нет, но грузится страница невероятно долго, иногда падая в ошибку 500.

С выводом через 

$id_filter $status_filter $user_filter $keyword_filter $label_filter $modified_from_filter ORDER BY status, id DESC $sql_limit", "%Y-%m-%d");

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

Link to post
Share on other sites

Ошибку я первым делом погуглил, но у меня нет доступа к настройкам mysql, хостер не дает. Еще обратил внимание на странный эффект, у меня постранично получается 1092 страницы заказов. Если перейти на 1091 страницу - все окей, ошибка возникает только на 1092 странице.

Link to post
Share on other sites

Ошибку я первым делом погуглил, но у меня нет доступа к настройкам mysql, хостер не дает. Еще обратил внимание на странный эффект, у меня постранично получается 1092 страницы заказов. Если перейти на 1091 страницу - все окей, ошибка возникает только на 1092 странице.

$this->db->query("SET SQL_BIG_SELECTS=1");

Link to post
Share on other sites

Спасибо, такой запрос до выборки решает проблему. Но я так и не понял, откуда она возникла. Буду разбираться. Еще раз спасибо.

 

Способ, который подсказал Kosyak76 - это способ пассивно-отступательный. При таком подходе излишне необоснованно грузится сервер БД. По-хорошему, надо бы найти причину и исправлять как следует...

 

Проблема скорее всего в неправильном запросе.

Сравнивайте со стандартным запросом Simpla - у ВАс, например, отсутствует GROUP BY, и в выборке  могут возникать НЕСКОЛЬКО записей от одного заказа (отличающиеся разными метками).

Link to post
Share on other sites

Способ, который подсказал Kosyak76 - это способ пассивно-отступательный. При таком подходе излишне необоснованно грузится сервер БД. По-хорошему, надо бы найти причину и исправлять как следует...

 

Понимаю. Буду выяснять, что не так.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...