Jump to content

Catégorie de produits erreur 500...


Recommended Posts

 

Bonjour,

Lorsque je veux avoir accès aux produits d'une catégorie à partir du menu, j'ai cette erreur après un long temps de charge. Si je vais dans les sous-menu, je n'ai pas ce problème mais je peux avoir des "request time out" . Le site est aussi vraiment très lent à charger. 

Avez-vous une idée du problème. 

Nouvel upgrade de 1.6.24 à 1.7.6.8... 

Merci

 

 

(1/1) ContextErrorException
Warning: PDO::query(): MySQL server has gone away

in DbPDO.php line 156
at DbPDOCore->_query('SELECT p.id_product FROM (SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, psales.quantity as sales, cp.position FROM product p LEFT JOIN product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) LEFT JOIN product_sale psales ON (psales.id_product = p.id_product) INNER JOIN category_product cp ON (p.id_product = cp.id_product) INNER JOIN category c ON (cp.id_category = c.id_category AND c.active=1) INNER JOIN product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE) WHERE p.visibility IN (\'both\', \'catalog\') AND c.nleft>=3 AND c.nright<=44 AND ps.id_shop=\'1\' GROUP BY p.id_product) p INNER JOIN category_product cp ON (p.id_product = cp.id_product) GROUP BY p.id_product ORDER BY p.position DESC LIMIT 0, 12')
in Db.php line 376
at DbCore->query('SELECT p.id_product FROM (SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, psales.quantity as sales, cp.position FROM product p LEFT JOIN product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) LEFT JOIN product_sale psales ON (psales.id_product = p.id_product) INNER JOIN category_product cp ON (p.id_product = cp.id_product) INNER JOIN category c ON (cp.id_category = c.id_category AND c.active=1) INNER JOIN product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE) WHERE p.visibility IN (\'both\', \'catalog\') AND c.nleft>=3 AND c.nright<=44 AND ps.id_shop=\'1\' GROUP BY p.id_product) p INNER JOIN category_product cp ON (p.id_product = cp.id_product) GROUP BY p.id_product ORDER BY p.position DESC LIMIT 0, 12')
in Db.php line 613
at DbCore->executeS('SELECT p.id_product FROM (SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, psales.quantity as sales, cp.position FROM product p LEFT JOIN product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) LEFT JOIN product_sale psales ON (psales.id_product = p.id_product) INNER JOIN category_product cp ON (p.id_product = cp.id_product) INNER JOIN category c ON (cp.id_category = c.id_category AND c.active=1) INNER JOIN product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE) WHERE p.visibility IN (\'both\', \'catalog\') AND c.nleft>=3 AND c.nright<=44 AND ps.id_shop=\'1\' GROUP BY p.id_product) p INNER JOIN category_product cp ON (p.id_product = cp.id_product) GROUP BY p.id_product ORDER BY p.position DESC LIMIT 0, 12')
in MySQL.php line 86
at MySQL->execute()
in Products.php line 88
at Products->getProductByFilters(12, 1, 'position', 'desc', array())
in SearchProvider.php line 133
at SearchProvider->runQuery(object(Context), object(ProductSearchQuery))
in ProductListingFrontController.php line 307
at ProductListingFrontControllerCore->getProductSearchVariables()
in ProductListingFrontController.php line 580
at ProductListingFrontControllerCore->doProductSearch('catalog/listing/category', array('entity' => 'category', 'id' => 7))
in CategoryController.php line 137
at CategoryControllerCore->initContent()
in Controller.php line 292
at ControllerCore->run()
in Dispatcher.php line 515
at DispatcherCore->dispatch()
in index.php line 28

 

Edited by jobine (see edit history)
Link to comment
Share on other sites

7 minutes ago, doekia said:

Cause possible, table ps_category corrompu qui provoque une boucle infini. Vérifier les level dans la table et les nleft-nright

Merci pour votre réponse. 

J'ai plusieurs table qui semble corrompu. La table category n'avait pas de clé primaire (comme d'autre aussi). Il y a t'il un moyen de vérifier la structure de la base de données avec un script?

J'ai ajouter une clé primaire sur ID_category mais il manque peut-être autre chose. En tout cas, ça réglé ce problème et le site est plus rapide. 

Merci

 

Link to comment
Share on other sites

13 minutes ago, Eolia said:

Ca m'étonnerai que votre hébergeur s'appelle Cpanel ou apache...

Qu'est-ce que vous ne comprenez pas dans cette phrase ?

Bonjour, vous êtes à prendre avec des pincettes... J'ai lu trop rapidement et je croyais que vous demandiez qu'est ce que mon hébergeur utilisait comme serveur. Nous n'avons pas tous votre intelligence supérieur. Je savais bien qu'il y avait un problème avec la base mais le problème est qu'est ce qui cause ça. La réponse suivante a été beaucoup plus constructive. 

Link to comment
Share on other sites

il y a 21 minutes, jobine a dit :

pas tous votre intelligence supérieur

mais pourquoi chaque fois que l'on fait un réponse qui permet de comprendre une erreur d'interprétation, les concernés se vexent. ça réponse vous permet de voir votre erreur et donc d'agir en conséquence. N'est-ce pas tout ce qui compte. Il faut comprendre que oui a répondre 50x par jour quelques fois on fini par avoir envie de piquer un  peu pour inciter à se reconcentrer. Ce n'est ni de la méchanceté, ni l'envie de se sentir supérieur. Et si l'on répète sans même un commentaire de plus la même réponse ou question, c'est vain. Et même dans ce cas on fini toujours par tomber sur des interlocuteurs qui prennent la mouche.

Ceci est mon commentaire à 2 centimes... un esprit plus bienveillant, encore plus quand on est la cause du petit piment dans la conversation.

Link to comment
Share on other sites

4 hours ago, jobine said:

Bonjour, vous êtes à prendre avec des pincettes... J'ai lu trop rapidement et je croyais que vous demandiez qu'est ce que mon hébergeur utilisait comme serveur. Nous n'avons pas tous votre intelligence supérieur. Je savais bien qu'il y avait un problème avec la base mais le problème est qu'est ce qui cause ça. La réponse suivante a été beaucoup plus constructive. 

C'est vrai qu'on peut ne pas toujours comprendre, mais les 3/4 du temps, presta est installé sur des serveurs basiques avec très peu de ressources et ça vient principalement de la, d'où la nécessité dans ces cas là de préciser l''hébergeur et la formule.

Quel est l'hébergeur ? Si c'est LWS, j'ai eu des problèmes similaires sur des requêtes basiques, le timeout est très court et non paramétrable sur C-Panel basique, il faut la formule supérieur ou au minimum la formule e-commerce Medium.

Ceci dit, si la base est corrompue, ca ne règlera pas le problème.

Ensuite pour accélérer le site, il faudra paramétrer le cache, je te conseille d'utiliser GTMetrix, tu auras rapidement une idée de la cause de lenteur et tu pourras savoir sur quoi travailler pour améliorer la rapidité d'affichage (principalement la compression des images et des stylesheets) 😉

Link to comment
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
×
×
  • Create New...