Closed VictorJavaSpring closed 11 months ago
Nota: Lo dels headers crec que es refereix a les línies finals del Orders.php :
catch(Exception $e) {
header('HTTP/1.0 401 ' . $e->getMessage());
die ($e->getMessage());
}
potser el $e->getMessage() és un missatge massa llarg..
He trobat aquesta info: _This error can occur if the MySQL query optimizer determines that the number of examined rows is going to exceed MAX_JOIN_SIZE. Setting the MySQL System Variable SQL_BIG_SELECTS=1 may resolve this error since doing so will cause the value for MAX_JOINSIZE to be ignored. i també aquests links, on donen diverses opcions: https://stackoverflow.com/questions/950465/mysql-sql-big-selects https://stackoverflow.com/questions/22630238/error-set-sql-big-selects-1-or-set-max-join-size
Ja veig...
Crec que es podria millorar l'eficiència d'aquesta SELECT
afegint una clau primaria a aixada_order_to_shop
:
ALTER TABLE aixada_order_to_shop add primary key (order_item_id);
PETICIÓ:
1.- Asegura't que SQL_BIG_SELECTS=0
2.- Prova si falla abans de fer el canvi.
3.- Afegeix la clau primaria a aixada_order_to_shop
.
4.- Prova si funciona un cop fet el canvi.
5.- Informa dels resultats a aquest mateix issue.
ATENCIÓ:
Abans hauries de mirar que aquesta sentencia:
select count(*) from (
SELECT order_item_id, count(*) FROM aixada_order_to_shop os group by order_item_id having count(*) > 1
) g;
retorna un 0
!!
@jmueller17 : Què opines?
Si et sembla faria un PR amb un canvi de BD que s'actibaria només si el select count(*)
retorna 0
.
Tot això un cop @VictorJavaSpring confirmés que no apareixen problemes en el dia a dia.
Nota: Lo dels headers crec que es refereix a les línies finals del Orders.php...
No té importancia, es normal que apareigui quan Aixada informa d'un error.
select count() from ( SELECT order_item_id, count() FROM aixada_order_to_shop os group by order_item_id having count(*) > 1 ) g; retorna 34 !
ALTER TABLE aixada_order_to_shop add primary key (order_item_id) retorna un #1062 - Duplicate entry '386685' for key 'PRIMARY'
SELECT * FROM aixada_order_to_shop
WHERE ORDER_ITEM_ID = 386685; retorna 1 registre només..
... retorna 34 !
Bé doncs fes:
ALTER TABLE aixada_order_to_shop add index (order_item_id);
Amb això la BD de dades ja tindrà un index per optimitzar la SELECT
, i suposo que ja no es produirà l'error The SELECT would examine more than MAX_JOIN_SIZE rows;
Però...
m'intriga com es creen aquests duplicats.
Sense poder bussejar a la BD m'hes dificil d'imaginar...
Provant el canvi...
Els canvis han desbloquejat l'error de moment, gràcies.
Hola!, ens ha donat error a l'hora de validar les comandes:
...
... l'error sembla que és a una query, (encara que sembla que també es queixa de que sobra un "header"). L'error surt en un POP UP i després es queda bloquejat ..
el Pop up mostra el següent texte:
He estat mirant i crec que on falla és al case 'getOrdersListing' de l'arxiu /php/control/Orders.php a:
La URL que monta és : http://www.girasoldesantmarti.net/aixada/manage_orders.php?filter=ordersForToday&lastPage=torn.php
Adjunto imatges, si teniu alguna idea, ens farieu un favor perqué no podem validar!