Jump to content

conversations en attente, mauvaise requête sql


Recommended Posts

Bonjour,

Je suis sur Prestashop 1.6.0.1

Je m'aperçois que je ne peux pas avoir accès à la liste des messages sur le site.

S'il y a des messages non lus je peux y accéder avec le picto en haut à gauche du BO.

Là j'ai accès au message que j'ai sélectionné, mais pas au suivant ni au précédent.

Quand je clique sur SAV, je tombe sur les réglages avec un message d'alerte :

"Mauvaise requête SQL
Lost connection to MySQL server during query"

Je suppose que la requête est erronée... ?

Merci d'avance pour votre aide

Link to comment
Share on other sites

Bonjour,

Toujours pas de réponse... j'ai peut-être mal expliqué mon problème :

Je n'ai pas accès à la liste des messages reçus sur le site.

Je peux en sélectionner un dans le raccourci en haut, mais ensuite je ne peux ni accéder au message suivant ni à la liste des messages.

Alors je passe d'un message à l'autre en changeant le numéro de message dans la barre d'adresse mais c'est loin d'être pratique.

J'imagine que c'est le lien vers la page des messages qui est erroné ?

Quelqu'un peut m'aider ? :)

Link to comment
Share on other sites

Bon j'ai trouvé la ligne à passer en TRUE dans le fichier defines.inc.php

Voici ce qui ressort :

SELECT SQL_CALC_FOUND_ROWS
								 a.*
			, 
			CONCAT(c.`firstname`," ",c.`lastname`) as customer, cl.`name` as contact, l.`name` as language, group_concat(message) as messages,
			(
				SELECT IFNULL(CONCAT(LEFT(e.`firstname`, 1),". ",e.`lastname`), "--")
				FROM `ps_customer_message` cm2
				INNER JOIN ps_employee e
					ON e.`id_employee` = cm2.`id_employee`
				WHERE cm2.id_employee > 0
					AND cm2.`id_customer_thread` = a.`id_customer_thread`
				ORDER BY cm2.`date_add` DESC LIMIT 1
			) as employee
			FROM `ps_customer_thread` a 
			
			
			LEFT JOIN `ps_customer` c
				ON c.`id_customer` = a.`id_customer`
			LEFT JOIN `ps_customer_message` cm
				ON cm.`id_customer_thread` = a.`id_customer_thread`
			LEFT JOIN `ps_lang` l
				ON l.`id_lang` = a.`id_lang`
			LEFT JOIN `ps_contact_lang` cl
				ON (cl.`id_contact` = a.`id_contact` AND cl.`id_lang` = 2) 
			 WHERE 1  
			GROUP BY cm.id_customer_thread 
			 ORDER BY a.`id_customer_thread` DESC  LIMIT 0, 50


at line 765 in file classes/db/Db.php

 

760. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
761. 		}
762. 		elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
763. 		{
764. 			if ($sql)
765. 				throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
766. 
767. 			throw new PrestaShopDatabaseException($this->getMsgError());
768. 		}
769. 	}
770. 

C'est grave docteur ?

Link to comment
Share on other sites

en-dessous il y a ça :

Link to comment
Share on other sites

si vous executez cette requete dans phpmyadmin ca vous donne quoi ?

SELECT SQL_CALC_FOUND_ROWS
			a.*, 
			CONCAT(c.`firstname`," ",c.`lastname`) as customer, cl.`name` as contact, l.`name` as language, group_concat(message) as messages,
			(
				SELECT IFNULL(CONCAT(LEFT(e.`firstname`, 1),". ",e.`lastname`), "--")
				FROM `ps_customer_message` cm2
				INNER JOIN ps_employee e
					ON e.`id_employee` = cm2.`id_employee`
				WHERE cm2.id_employee > 0
					AND cm2.`id_customer_thread` = a.`id_customer_thread`
				ORDER BY cm2.`date_add` DESC LIMIT 1
			) as employee
			FROM `ps_customer_thread` a 
			LEFT JOIN `ps_customer` c
				ON c.`id_customer` = a.`id_customer`
			LEFT JOIN `ps_customer_message` cm
				ON cm.`id_customer_thread` = a.`id_customer_thread`
			LEFT JOIN `ps_lang` l
				ON l.`id_lang` = a.`id_lang`
			LEFT JOIN `ps_contact_lang` cl
				ON (cl.`id_contact` = a.`id_contact` AND cl.`id_lang` = 2) 
			 WHERE 1  
			GROUP BY cm.id_customer_thread 
			 ORDER BY a.`id_customer_thread` DESC  LIMIT 0, 50

 

Link to comment
Share on other sites

Ca donne ça :

Requête SQL : Documentation

 

SELECT SQL_CALC_FOUND_ROWS
			a.*, 
			CONCAT(c.`firstname`," ",c.`lastname`) as customer, cl.`name` as contact, l.`name` as language, group_concat(message) as messages,
			(
				SELECT IFNULL(CONCAT(LEFT(e.`firstname`, 1),". ",e.`lastname`), "--")
				FROM `ps_customer_message` cm2
				INNER JOIN ps_employee e
					ON e.`id_employee` = cm2.`id_employee`
				WHERE cm2.id_employee > 0
					AND cm2.`id_customer_thread` = a.`id_customer_thread`
				ORDER BY cm2.`date_add` DESC LIMIT 1
			) as employee
			FROM `ps_customer_thread` a 
			LEFT JOIN `ps_customer` c
				ON c.`id_customer` = a.`id_customer`
			LEFT JOIN `ps_customer_message` cm
				ON cm.`id_customer_thread` = a.`id_customer_thread`
			LEFT JOIN `ps_lang` l
				ON l.`id_lang` = a.`id_lang`
			LEFT JOIN `ps_contact_lang` cl
				ON (cl.`id_contact` = a.`id_contact` AND cl.`id_lang` = 2) 
			 WHERE 1  
			GROUP BY cm.id_customer_thread 
			 ORDER BY a.`id_customer_thread` DESC  LIMIT 0, 50

 

MySQL a répondu : Documentation

#2013 - Lost connection to MySQL server during query

Link to comment
Share on other sites

ovh en mutu, vous êtes 2500 sur le même serveur (un serveur c'est juste une carte mère, des processeurs et un disque dur soudé dessus, le tout entouré de tuyaux de flotte pour refroidir le bouzin)

Donc forcément, dès que les requêtes commencent à être un peu grosses leur système coupe les piles.

Link to comment
Share on other sites

bah... 1500 requêtes en même temps à la base de données (qui est sur le disque dur) forcément ça coince.

Sachant que Prestashop c'est minimum 70 requêtes par page vue et donc par internaute sur le site (plus pour les pages produits ou home)

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...