J’ai une petite question concernant l’utilisation de la recherche. Je me rends compte que lorsque je recherche un tiers, la casse doit être respectée.
Par exemple j’ai 3 tiers nommés comme ci-dessous :
Nom e-mail
Jean Dupont [email protected]
Joe Dupont
Pierre Dupont
Si je cherche (et que ce soit dans la liste des tiers ou dans la recherche rapide du theme eldy) :
« Dupont » , je vois bien les 3 noms apparaître.
« dupont » , j’arrive sur la fiche de Jean Dupont (car son e-mail contient la chaine « dupont » en minuscule)
« Joe » , je ne vois que Joe Dupont
« joe » , je ne vois aucune réponse
Au final, j’aimerais que respecter la casse ne soit pas nécessaire et donc avoir le même résultat pour « Dupont » ou « dupont » et « Joe » ou « joe »
Selon le message ci-dessous il semblerait que ce ne soit pas le fonctionnement normal de Dolibarr. faut-il faire un réglage en bdd?
Merci Ksar pour l’indice ! Je n’avais jamais cherché à comprendre le principe des jeux de caractères et les interclassements. Super intéressant !
Pour info j’ai réussi à régler le problème avec les commandes suivantes depuis la CLI :
USE dolibarrdb;
SELECT @@character_set_database, @@collation_database;
Pour me rendre compte que je n’étais pas en utf8mb4_unicode_ci, du coup j’ai modifié les colonnes des tables avec des requêtes de ce style :
...
ALTER TABLE dolibarrdb.llx_propaldet MODIFY label varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE dolibarrdb.llx_propaldet MODIFY description text(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE dolibarrdb.llx_propaldet MODIFY vat_src_code varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE dolibarrdb.llx_propaldet MODIFY localtax1_type varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
...
Bref, depuis ça, les infos sur les interclassement dans la partie « administration > base de données » de dolibarr sont cohérentes, et mes recherches ne sont plus sensibles à la casse !!
J’espère que je n’aurai pas d’effets de bord… un backup a été fait avant les modifications.