php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2011, 20:13  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
coxtor befindet sich auf einem aufstrebenden Ast
Standard mysql volltextsuche schlägt mit Umlauten fehl

Hallo, ich schlage mich jetzt schon eine Weile mit diesem Problem herum und ich komme einfach nicht auf die Lösung. Im Netz habe ich bisher auch keine passende Lösung gefunden.
Ich hoffe sehr das Ihr mir hier helfen könnt :
Meine Suchanfrage funktioniert soweit hervorragend, nur sobald das Suchwort einen Umlaut enthält funktioniert es nicht.
Die Umlaute sind unkodiert in der Datenbank.
Mein query sieht zu Zeit so aus :

PHP-Code:
SELECT FROM crCard WHERE MATCH (`tag`) AGAINST ('+Bäume +Gebäude +groß' IN BOOLEAN MODE 
Ich habe schon einige Diskussionen über utf8 und ISO-8859-1 gelesen und die Meinungen, was verwendet werden sollte unterscheiden sich stark, ich verwende ISO-8859-1 in meinem HTML Header.
Ich bin mir leider nicht sicher wie es in meiner Datenbank aussieht (collation ? oder so), ich bin bei 1und1 und habe noch keine Möglichkeit gefunden irgendwie darauf zuzugreifen.

Ich hoffe ich habe euch genug Infos gegeben,
danke schon einmal für die Hilfe!
coxtor ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.07.2011, 20:19  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von coxtor Beitrag anzeigen
Ich bin mir leider nicht sicher wie es in meiner Datenbank aussieht (collation ? oder so), ich bin bei 1und1 und habe noch keine Möglichkeit gefunden irgendwie darauf zuzugreifen.
Kannst du doch in phpMyAdmin nachschauen - sowohl für die Tabelle, als auch für die einzelnen Spalten.

Und die Zeichenkodierung der Datenbankverbindung ist auch wichtig.

Zitat:
ich verwende ISO-8859-1 in meinem HTML Header.
Na das ist der Datenbank aber eher egal (so lange keine falsch kodierten Daten bereits im Script vorliegen).

Hast du denn die Query, so wie sie ist, erst mal über phpMyAdmin getestet?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 20:32  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
coxtor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hast du denn die Query, so wie sie ist, erst mal über phpMyAdmin getestet?
Wie blöd von mir, nein hatte ich noch nicht. Und siehe da, in phpMyAdmin funktioniert die Anfrage problemlos!

Hilft diese Angabe denn schon eine Lösung zu finden ? Brauchst du / ihr (alle herzlich eingeladen) mehr Code?

Ich bin mir wirklich sehr sicher, das ich die collation nicht einstellen kann, ich habe wirklich alles durchsucht, es sei den es gibt einen versteckten Trick sie zu entdecken.
coxtor ist offline   Mit Zitat antworten
Alt 20.07.2011, 20:34  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von coxtor Beitrag anzeigen
Wie blöd von mir, nein hatte ich noch nicht. Und siehe da, in phpMyAdmin funktioniert die Anfrage problemlos!

Hilft diese Angabe denn schon eine Lösung zu finden ?
Sicher - du hast an irgendeiner Stelle ein Problem mit der Zeichenkodierung.

Da darüber allerdings schon zig Diskussionen geführt worden sind, an welchen Stellen man die alles zu beachten hat, habe ich jetzt keine große Lust, das hier schon wieder durch zu exerzieren - also bitte erst mal selber Informationen dazu suchen und anwenden.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 20:47  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
coxtor befindet sich auf einem aufstrebenden Ast
Standard

Danke schon einmal. Vielleicht noch eine weitere Hilfestellung? Ich denke das Problem kommt von Javascript : Ich übergebe die Daten eines Formulars mithilfe von serialize() (prototype) an eine request.php, dort liegen die Daten dann vorerst unverändert vor.
im browser wird alles korrekt angezeigt , (neu getestet) der query sieht so aus :

PHP-Code:
SELECT FROM crCard WHERE MATCH (`tag`) AGAINST ('+B%C3%A4ume' IN BOOLEAN MODE 
das geht natürlich nicht.
Ich habe es mal mit der php Funktion urldecode probiert, dann sieht es so aus :

PHP-Code:
SELECT FROM crCard WHERE MATCH (`tag`) AGAINST ('+Danke' IN BOOLEAN MODE 
Geht aber trotzdem(!) nicht.
coxtor ist offline   Mit Zitat antworten
Alt 20.07.2011, 20:51  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von coxtor Beitrag anzeigen
PHP-Code:
SELECT FROM crCard WHERE MATCH (`tag`) AGAINST ('+B%C3%A4ume' IN BOOLEAN MODE 
Das ist ein in UTF-8 kodiertes ä.

JavaScript arbeitet intern immer mit Unicode.

Wenn du dein komplettes Projekt auf UTF-8 umstellen würdest, hättest du auch in Zukunft am wenigstens Probleme zu erwarten.

Wenn du das nicht willst, solltest du dir im PHP-Script mit utf8_decode behelfen können. Das ist aber natürlich nur ein Notnagel. Sonderzeichen, die in ISO-8859-1 nicht abbildbar sind, gehen dir damit verloren.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 20:53  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von coxtor Beitrag anzeigen
Ich habe schon einige Diskussionen über utf8 und ISO-8859-1 gelesen und die Meinungen, was verwendet werden sollte unterscheiden sich stark, ich verwende ISO-8859-1 in meinem HTML Header.
Ich bin mir leider nicht sicher wie es in meiner Datenbank aussieht (collation ? oder so), ich bin bei 1und1 und habe noch keine Möglichkeit gefunden irgendwie darauf zuzugreifen.
Das musst du erstmal feststellen:
- Welches Encoding verwendet die Webseite (was schickt sie dir?)
- Welches Encoding verwendet das PHP Script (wie erwartest du Daten? Welches Encoding gilt in deinem Script?)
- Welches Encoding verwendet der Datenbanktreiber (ClientLib, mit welchem Encoding transportiert sie Daten? Darauf hast du Einfluss)
- Welches Encoding verwendet die Datenbank (-tabelle, in welchem Encoding werden die Daten schlussendlich abgelegt?)

Im Idealfall sprechen alle denselben Dialekt, z.B. utf8
Falls nicht, müssen an entsprechenden Stellen Konvertierungen vorgenommen werden. Die entsprechenden Stellen nennt man dann den Kontextwechsel (google), grob gesagt die Übergabe von Daten an eine neue "Umgebung".

Wie bereits erwähnt, wurde das Thema "hinreichend behandelt"
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MYSQL Volltextsuche mit erweiterten Funktionen? Mandible Datenbanken 4 01.06.2011 17:43
[Erledigt] Eintrag schlägt fehl Extremefall PHP Tipps 2009 17 19.12.2009 17:42
ReflectionClass export schlägt fehl bei Zugriff auf Klassenkonstante tereano PHP-Fortgeschrittene 4 30.03.2009 13:16
login schlägt immer fehl sternschnuppe99 Server, Hosting und Workstations 3 07.02.2008 13:28
Ltrim schlägt fehl HILFE! karlegonwalter PHP Tipps 2008 1 14.12.2007 21:11
login mit IE schlägt fehl matthros PHP Tipps 2006 3 17.05.2006 15:22
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Umlauten werden falsch in MySQL geschrieben lamp PHP Tipps 2006 3 04.01.2006 12:47
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MySQL 3.23.x Volltextsuche mit Boolean codix Datenbanken 0 29.07.2005 14:42
[Erledigt] MySQL 4 installieren bei Linux schlägt fehl! Datenbanken 12 27.06.2005 17:15
MySQL Administrator Probleme mit Umlauten beim Scripten Datenbanken 5 28.04.2005 11:44
Login schlägt nach Domainumzug fehl PHP Tipps 2004-2 5 02.12.2004 01:48
Cookie schlägt fehl Paulo PHP Tipps 2004-2 6 25.11.2004 15:34
Bilder generieren schlägt fehl PHP Tipps 2004 5 13.06.2004 18:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql match umlaute, suche umlaute mysql php, mysql volltextsuche, volltextsuche mysql umlaute, suchbegriff enthält umlaute php sql, sql match sonderzeichen Â, mysql volltextsuche umlaute, mysql volltextsuche tutorial, mysql umlaute iso-8859-1, fulltext umlaute mysql, php select match findet keine umlaute, php select match findet kein ä, 1und1 mysql volltextsuche, sql server fulltext german umlauts, php volltextsuche umlaute, mysql match against sonderzeichen, php suche sonderzeichen, sql match encoding umlaute, php sql suche umlaute, mysql match sonderzeichen utf8 php

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum