Mvin Posted September 24, 2020 Share Posted September 24, 2020 (edited) Bonjour, J'ai un message d'erreur dans le backend (partie commandes). Je ne parviens pas à le résoudre malgré les nombreuses solutions vues sur les forums. Pouvez-vous m'aider? Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='<br /><br /><pre>SELECT SQL_CALC_FOUND_ROWS a.`id_order`, `reference`, `total_paid_tax_incl`, `payment`, a.`date_add` AS `date_add` , a.id_currency, a.id_order AS id_pdf, CONCAT(LEFT(c.`firstname`, 1), '. ', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, IF((SELECT so.id_order FROM `ps_orders` so WHERE so.id_customer = a.id_customer AND so.id_order < a.id_order LIMIT 1) > 0, 0, 1) as new, country_lang.name as cname, IF(a.valid, 1, 0) badge_success, label.order_id AS dpd_label, CONCAT_WS(",", latest_job.order_id, latest_job.status) AS dpd_job, return_label.order_id AS dpd_return_label, CONCAT_WS(",", latest_return_job.order_id, latest_return_job.status) AS dpd_return_job ,mol.`transaction_id`, shop.name as shop_name FROM `ps_orders` a LEFT JOIN `ps_customer` c ON (c.`id_customer` = a.`id_customer`) INNER JOIN `ps_address` address ON address.id_address = a.id_address_delivery INNER JOIN `ps_country` country ON address.id_country = country.id_country INNER JOIN `ps_country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = 1) LEFT JOIN `ps_order_state` os ON (os.`id_order_state` = a.`current_state`) LEFT JOIN `ps_order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = 1) LEFT JOIN ps_dpdshipment_label AS label ON label.order_id = a.id_order AND label.retour = "0" LEFT JOIN (SELECT max(id_dpd_jobs) AS max_id, order_id, status, type FROM ps_dpd_jobs WHERE type = "1" GROUP BY order_id) AS latest_job ON (latest_job.order_id = a.id_order) LEFT JOIN ps_dpdshipment_label AS return_label ON return_label.order_id = a.id_order AND return_label.retour = "1" LEFT JOIN (SELECT max(id_dpd_jobs) AS max_id, order_id, status, type FROM ps_dpd_jobs WHERE type = "2" GROUP BY order_id) AS latest_return_job ON (latest_return_job.order_id = a.id_order) LEFT JOIN `ps_mollie_payments` mol ON mol.`order_reference` = a.`reference` LEFT JOIN `ps_shop` shop ON a.`id_shop` = shop.`id_shop` WHERE 1 AND a.id_shop IN (1, 2) ORDER BY a.id_order DESC LIMIT 0, 50</pre> at line 769 in file classes/db/Db.php Merci d'avance pour votre aide Edited September 28, 2020 by Mvin (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted September 24, 2020 Share Posted September 24, 2020 les tables n'ont pas les même collations ! Changer celles-ci en base de données pour utiliser les même Link to comment Share on other sites More sharing options...
Mvin Posted September 24, 2020 Author Share Posted September 24, 2020 Les tables font partie de la même base de données Prestashop et ont la même collation. Link to comment Share on other sites More sharing options...
doekia Posted September 25, 2020 Share Posted September 25, 2020 Non ! Chaque table peut avoir sa propre collation et ici le message d'erreur est on ne peut plus explicite l'une d'elle est en utf8_unicode_ci au lien de utf8_general_ci. D'instinct je pencherai pour `ps_mollie_payments` mol ON mol.`order_reference` = a.`reference` Link to comment Share on other sites More sharing options...
Mvin Posted September 25, 2020 Author Share Posted September 25, 2020 J'ai modifié la collation avant de poster un message sur ce forum. Même résultat Link to comment Share on other sites More sharing options...
doekia Posted September 25, 2020 Share Posted September 25, 2020 quand tu copie/colle la requete dans ton phpmyadmin, même erreur? si oui tu ajoutes pour chaque égalité: <colonne1> collate utf8_general_ci = <colonne2> collate utf8_general_ci jusqu'a ne plus avoir l'erreur. Ceci te pointera du doigt la table en cause. Qu'il faudra probablement recréer ou réparer Link to comment Share on other sites More sharing options...
Mvin Posted September 28, 2020 Author Share Posted September 28, 2020 Merci Doekia. J'ai trouvé la table qui crée le problème. Je l'ai recrée avec ses données. Problème résolu. Merci à toi Link to comment Share on other sites More sharing options...
doekia Posted September 28, 2020 Share Posted September 28, 2020 Quelle était-elle? Si tu en as une sauvergarde, j'aimerais voir le schema de celle-ci... export structure seule Link to comment Share on other sites More sharing options...
Mvin Posted September 28, 2020 Author Share Posted September 28, 2020 J'ai constaté que la table ps_mollie_payments mais aussi la db était en collation utf8_unicode_ci. J'ai repassé la db complète en utf8_general_ci. Cela a demandé un reparamétrage des moyens de paiement Paypal et Mollie. Je n'ai pas pensé à prendre une sauvegarde Link to comment Share on other sites More sharing options...
doekia Posted September 28, 2020 Share Posted September 28, 2020 pas grave, mais mon instinct avait finalement vu juste Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now