bei einem unserer Kunden funktioniert die Suche nicht wenn ein Umlaut in den Suchschlitz eingegeben wird.
Es erscheint dann nur der Fehler “Leider ist etwas schief gelaufen”. Hat jemand eine Idee wodran das liegen kann?
Der Hoster ist Mittwald, bisher hatten wir dort diese Probleme nicht.
Wir sind auch bei Mittwald. Suche mit Umlauten geht auch nicht:
An exception occurred while executing '# search::detect-keywords
SELECT keyword FROM product_keyword_dictionary WHERE (language_id = ?) AND ((keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ?))' with params ["\x2f\xbb\x5f\xe2\xe2\x9a\x4d\x70\xaa\x58\x54\xce\x7c\xe3\xe2\x0b", "tro\u00f6%", "t_ro\u00f6%", "t __ro\u00f6%", "to\u00f6%", "t_o\u00f6%", "t__ o\u00f6%", "tor\u00f6%", "tor_\u00f6%", "tor __\u00f6%", "tor%", "tor_%", "tor__ %", "\xb6\x72\x6f\x74\x25", "\xb6\x5f\x72\x6f\x74\x25", "\xb6\x5f\x5f\x72\x6f\x74\x25", "\xb6\x6f\x74\x25", "\xb6\x5f\x6f\x74\x25", "\xb6\x5f\x5f\x6f\x74\x25", "\xb6\xc3\x6f\x72\x74\x25", "\xb6\xc3\x6f\x72\x5f\x74\x25", "\xb6\xc3\x6f\x72\x5f\x5f\x74\x25", "\xb6\xc3\x6f\x72\x25", "\xb6\xc3\x6f\x72\x5f\x25", "\xb6\xc3\x6f\x72\x5f\x5f\x25"]:
SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
Wir nutzen aber das Plugin „Suche Pro“ - kann also sein dass es ohne diese Plugin funktionieren würde…
Wenn ich bei Mittwald ins phpmyadmin gehe sieht es so aus:
Zeichensatz der MySQL Verbindung: utf8mb4_general_ci
Zeichensatz der Spalte 'keyword' in der Tabelle 'product_keyword_dictionary': utf8mb4_unicode_ci
Im phpmyadmin geht es. Im Shopware nicht, auch wenn das Plugin deaktiviert ist.
Ich glaub dass irgendwie der Charset der Datenbankverbindung falsch ist, also eventuell etwas was tatsächlich Mittwald in der Hand hätte.
Aber kann man dieses Verbindungscharset beim Connect nicht überschreiben? Sollte das Shopware nicht machen?
So 100% versteh ich noch nicht wos hakt.
Hier mal der Query in sauber:
SELECT
keyword
FROM
product_keyword_dictionary
WHERE
(
language_id = "\x2f\xbb\x5f\xe2\xe2\x9a\x4d\x70\xaa\x58\x54\xce\x7c\xe3\xe2\x0b"
)
AND
(
(keyword LIKE "tro\u00f6 % "
OR keyword LIKE "t_ro\u00f6 % "
OR keyword LIKE "t__ro\u00f6 % "
OR keyword LIKE "to\u00f6 % "
OR keyword LIKE "t_o\u00f6 % "
OR keyword LIKE "t__o\u00f6 % "
OR keyword LIKE "tor\u00f6 % "
OR keyword LIKE "tor_\u00f6 % "
OR keyword LIKE "tor__\u00f6 % "
OR keyword LIKE "tor % "
OR keyword LIKE "tor_ % "
OR keyword LIKE "tor__ % "
OR reversed LIKE "\xb6\x72\x6f\x74\x25"
OR reversed LIKE "\xb6\x5f\x72\x6f\x74\x25"
OR reversed LIKE "\xb6\x5f\x5f\x72\x6f\x74\x25"
OR reversed LIKE "\xb6\x6f\x74\x25"
OR reversed LIKE "\xb6\x5f\x6f\x74\x25"
OR reversed LIKE "\xb6\x5f\x5f\x6f\x74\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x74\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x74\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x5f\x74\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x25"
OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x5f\x25")
)
PS: Ja, die Suche ist ziemlicher Mist, das wissen wir alle. Aber das Plugin sah eigentlich ganz gut aus!
Das Problem hatten wir auch bei Mittwald. Liegt an der Datenbank Collation. Mittwald hat diese bei uns angepasst…
Ich glaube das Charset sollte utf8 und die Collation utf8_unicode_ci sein.
Folgendes Bash-Skript gab es bei uns im Ordner /files:
#!/bin/bash
database=''
user=''
pass=''
host=''
charset='utf8'
collate='utf8_unicode_ci'
echo "Changing charset of database: $database"
mysql -u$user -p$pass -h$host $database -s -e "ALTER DATABASE $database CHARACTER SET = $charset COLLATE = $collate;"
for table in $(mysql -u$user -p$pass -h$host $database -s --skip-column-names -e 'show tables')
do
echo ''
echo "Changing charset of table: $table"
mysql -u$user -p$pass -h$host $database -s -e "ALTER TABLE $table CHARACTER SET $charset COLLATE $collate"
echo "Converting charset of table: $table"
mysql -u$user -p$pass -h$host $database -s -e "ALTER TABLE $table CONVERT TO CHARACTER SET $charset COLLATE $collate"
done
echo "Collation changed to: $collate"
ALTER TABLE `product_keyword_dictionary` CHANGE `keyword` `keyword` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, CHANGE `reversed` `reversed` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
Laut Mittwald wird das Problem aufgrund von gemischten Datenbank- und Tabellenkollationen verursacht. Sie konnten mir aber schnell weiterhelfen und kümmern sich um das Problem damit es bei Neuinstallationen dort nicht mehr auftritt.
Ich habe bei Mittwald desöfteren Probleme mit dem PhpMyAdmin.
Beispiel:
Ich klicke auf die Tabelle „media_thumbnail“, Klicke danach auf den Reiter „Struktur“, und danach wieder auf „Anzeigen“. Das zerhaut mir die Anzeige… bedeutet, die Ansicht aktualisiert sich nicht mehr. Wenn ich dann links die Tabelle wechsele, und dann wieder auf die Thumbnail-Tabelle klicke, passiert nichts.