Erreur recherche avec caractères accentués

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Erreur recherche avec caractères accentués

    bonjour à tous,

    un problème qui me colle depuis quelques temps et qui malgré beaucoup de recherches me laisse sans solution

    Sur la partie front-end de mon site, lorsque je saisis un terme sans accent dans la zone de recherche, je ne rencontre aucun souci.

    En revanche, dès qu'il y a un caractère accentué, j'obtiens l'erreur suivante :

    Error: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=': Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='

    Pour le terme " évolution " recherché, l'url générée est la suivante :
    http://<monsite>/index.php/recherche?searchword=%C3%A9volution&searchphrase=a ll

    Merci à vous pour l'aide que vous pourrez me fournir

  • #2
    Bonjour,

    Je viens de faire quelques tests avec le module de recherche et le module de recherche avancée, sans souci.

    Donc, quel module de recherche utilisez-vous ? quelle version Joomla ?

    Si vous allez dans Extensions/Base de Données, avez-vous des erreurs ?

    Si vous utilisez le module de "recherche avancée", avez-vous essayé de "ré-indexer votre contenu" ? menu Composant, sous-menu "Recherche Avancée" et cliquez sur "Purger l'index" puis "Indexer". Attention : si votre site est gros, cela peut prendre un certain temps....

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Envoyé par pmleconte Voir le message
      Bonjour,

      Je viens de faire quelques tests avec le module de recherche et le module de recherche avancée, sans souci.

      Donc, quel module de recherche utilisez-vous ? quelle version Joomla ?

      Si vous allez dans Extensions/Base de Données, avez-vous des erreurs ?

      Si vous utilisez le module de "recherche avancée", avez-vous essayé de "ré-indexer votre contenu" ? menu Composant, sous-menu "Recherche Avancée" et cliquez sur "Purger l'index" puis "Indexer". Attention : si votre site est gros, cela peut prendre un certain temps....

      Pascal
      Bonsoir à vous,

      tout d'abord merci de me répondre.

      J'utilise le Framework Helix mais le moteur de recherche semble être celui du core Joomla.

      Voici les infos qui vous seront utiles :

      Interclassement de la base de données utf8_general_ci
      Collation de la connexion à la base de données utf8mb4_general_ci
      Version de PHP 5.4.1
      Serveur web Microsoft-IIS/7.5
      Serveur web pour interface PHP cgi-fcgi
      Version de Joomla Joomla! 3.8.12 Stable [ Amani ] 28-August-2018 14:00 GMT

      Je ne rencontre aucune erreur sur la base de données.

      Par contre, le module " recherche avancée " n'apparaît pas dans " Composant".
      Aucun menu ne fait référence à " recherche avancée " ou encore " purger l'index"

      Cordialement


      Commentaire


      • #4
        Bonjour,
        Il doit y avoir une erreur : php 5.4.1 ? Le minimum est PHP 5,6 par rapport principalement aux failles de sécurité des versions précédentes...

        Sinon, l'erreur signalé est une erreur SQL (requête provenant de la recherche dans la base de ce que tu as saisi dans la zone de recherche) et qui indique que les tables jointes (reliées entre elles) ne sont pas compatibles (vraisemblablement à cause d'un jeu de caractères différents pour les tables liées).
        En voyant le message on voit 2 tables avec un jeu de caractères et une table (la dernière) avec un jeu différent.

        Cordialement,
        Chabi01 - http://www.xlformation.com

        Commentaire


        • #5
          Envoyé par chabi01 Voir le message
          Bonjour,
          Il doit y avoir une erreur : php 5.4.1 ? Le minimum est PHP 5,6 par rapport principalement aux failles de sécurité des versions précédentes...

          Sinon, l'erreur signalé est une erreur SQL (requête provenant de la recherche dans la base de ce que tu as saisi dans la zone de recherche) et qui indique que les tables jointes (reliées entre elles) ne sont pas compatibles (vraisemblablement à cause d'un jeu de caractères différents pour les tables liées).
          En voyant le message on voit 2 tables avec un jeu de caractères et une table (la dernière) avec un jeu différent.

          Cordialement,
          bonjour et merci,

          comment puis-je connaître le nom des tables impactées par le problème d'incompatibilité ?

          J'ai effectivement des tables en uft8_general_ci et d'autres en utf8mb4_general_ci.

          La table "content" par exemple est en utf8mb4_general_ci

          Commentaire


          • #6
            En fait, il n'y a pas "d'incompatibilité" mais d'un mix de page de caractères incorrect.
            Personnellement, le seul moyen que je connaisse est de faire un export de la table en sélectionnant un jeu de caractère différent, supprimer l'ancienne table, réimporter la table exportée.
            C'est TRES risqué : la moindre erreur plante tout le site !!

            Même en faisant un "alter" sur la table pour changer la page de caractère utilisé, tu vas alors avoir des caractères "bizarres" qui vont se retrouver partout dans tes données...

            Peut être que quelqu'un a une solution "plus simple" et "moins risquée"..

            Cordialement,
            Chabi01 - http://www.xlformation.com

            Commentaire


            • #7
              Envoyé par chabi01 Voir le message
              En fait, il n'y a pas "d'incompatibilité" mais d'un mix de page de caractères incorrect.
              Personnellement, le seul moyen que je connaisse est de faire un export de la table en sélectionnant un jeu de caractère différent, supprimer l'ancienne table, réimporter la table exportée.
              C'est TRES risqué : la moindre erreur plante tout le site !!

              Même en faisant un "alter" sur la table pour changer la page de caractère utilisé, tu vas alors avoir des caractères "bizarres" qui vont se retrouver partout dans tes données...

              Peut être que quelqu'un a une solution "plus simple" et "moins risquée"..

              Cordialement,
              Effectivement cela reste très risqué ...

              En partant du fait que la recherche sans accent ne pose pas de souci, l'idée serait peut-être de traiter le mot ou la phrase saisie dans le champs de recherche de sorte à transformer tous les caractères accentué :

              Code PHP:
              $text strtr($text,'@ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêë ìíîïðòóôõöùúûüýÿ','aAAAAAACEEEEIIIIOOOOOUUUUYaaaaa aceeeeiiiioooooouuuuyy'); 
              Reste à savoir où rajouter ce morceau de code ...

              J'ai rajouté cette ligne dans tous les plugins liés à la recherche :
              /plugins/search/categories
              /plugins/search/contacts
              /plugins/search/content
              etc ...

              mais cela ne change rien hélas

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X