SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.06.2009, 14:50:21
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
Frage allgemein zu RegExp und match against

Hay alle zusammen


Ich mache mir ne Suche für Daten die in einer Mysql datenbank stehen, die daten sind in mehreren sprachen unter anderem auch in arabisch türkisch chinesisch etc das alles realisiere ich mir mit preg_match_all und bastel mir je nach treffern die sql abfrage zusammen. Ich arbeite mit UTF-8 codierten texten die in der mysql Datenbank stehen. Soweit so gut funktioniert auch alles schonmal ganz gut.
Jetzt hab ich zwei sachen die mich stören und ich weiss nicht woran es liegt.
Mein RegExp für eine normale Suchwörter Getrennte abfrage

PHP-Code:
/^[^d-+][^d]+/miu 
Wenn der Nutzer normale Suchwörter eingibt im Deutschen zum beispiel "Auto Hallo Welt König" werden alle texte ausgegeben in denen diese worte vorkommen. Allerdings wird König z.b genau wie Konig behandelt. Woran liegt das?
meine zweite Frage:

wenn man Wörter hat mit einem ' drin wird nicht gematcht obwohl das wort genauso in der Datenbank im Text vorkommt BSP:

Suche nach Peter's Auto
Text in datenbank ... Peter's Auto ist rot...

ergibt keine Treffer. In der Datenbank steht der Eintrag genauso ohne \ slashes

Woran liegt das?
Liebe Grüsse
Said
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #2  
Alt 23.06.2009, 13:51:32
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
AW: Frage allgemein zu RegExp und match against

keiner ne idee? abfragen tu ich mit match against und fulltext
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #3  
Alt 24.06.2009, 00:20:59
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
AW: Frage allgemein zu RegExp und match against

Hi saidbuchari,

Zu deiner ersten Frage:
Das liegt an den MySQL-Collation-Set. Lese dir dazu mal das hier durch:
http://dev.mysql.com/doc/refman/5.1/...code-sets.html

Zu deiner 2. Frage:
Das liegt auch an MySQL, da du ja mit fts suchst wirst du evtl solche Sonderzeichen nicht finden, da MySQL die nicht mit fts indiziert. Evtl schafft "IN BOOLEAN MODE" da Abhilfe.
Mit Zitat antworten
  #4  
Alt 24.06.2009, 14:55:28
saidbuchari saidbuchari ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 118
AW: Frage allgemein zu RegExp und match against

Danke für deinen Ansatz.
Also meine EInträge in der Datenbank sind in utf8_unicode_ci
Es sind ganze Bücher in der Datenbank die ich so nach udn nach importiert habe. Das wär echt schlecht wenn das nicht geht. mh gibt es ne möglichkeit das das trotzdem geht vielleicht das ich die bücher einfach nochmal importiere und dann mit einem addslashes beim eintragen? oder das ' ersetzen lassen durch \' aber eigentlich kanns daran nicht liegen hab ja uch alles per mysql_real_escape_strings in die datenbank eingetragen da müsste er das ja automatisch machen und die suche läuft auh über mysql_real_escape_strings.
IN BOOLEAN MODE ist aktiviert

mh was muss ich einstellen damit ö auch nur auf ö matcht und ich ' in den texten benutzen kann?
__________________
Die Wahrheit lässt sich nicht teilen...
Mit Zitat antworten
  #5  
Alt 24.06.2009, 19:50:49
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
AW: Frage allgemein zu RegExp und match against

Ob deine Texte richtig in der Db stehen siehst du ja, wenn du sie abruft.

Zitat:
For any Unicode character set, operations performed using the _general_ci collation are faster than those for the _unicode_ci collation. For example, comparisons for the utf8_general_ci collation are faster, but slightly less correct, than comparisons for utf8_unicode_ci. The reason for this is that utf8_unicode_ci supports mappings such as expansions; that is, when one character compares as equal to combinations of other characters. For example, in German and some other languages “ß” is equal to “ss”. utf8_unicode_ci also supports contractions and ignorable characters. utf8_general_ci is a legacy collation that does not support expansions, contractions, or ignorable characters. It can make only one-to-one comparisons between characters.

To further illustrate, the following equalities hold in both utf8_general_ci and utf8_unicode_ci (for the effect this has in comparisons or when doing searches, see Section 9.1.6.7, “Examples of the Effect of Collation”):

Ä = A
Ö = O
Ü = U

A difference between the collations is that this is true for utf8_general_ci:

ß = s

Whereas this is true for utf8_unicode_ci:

ß = ss
Demnach wäre utf8_unicode_ci ja eigentlich richtig. (ä = ae)

Kannst du die SQL's (und den PHP-Teil) mal posten ?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Volltextsuche MATCH AGAINST trifft nicht immer waschbaer MySQLi/PDO/(MySQL) 0 05.10.2008 20:28:04
- MATCH (Feld) AGAINST ('Wort') AS score - für Integer-Werte darkchocolate MySQLi/PDO/(MySQL) 1 02.09.2007 21:59:49
match against wortsuche Said MySQLi/PDO/(MySQL) 4 02.08.2007 11:12:42
WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?! 8805-evergreen. MySQLi/PDO/(MySQL) 6 10.03.2006 22:48:06
Match Against cvb MySQLi/PDO/(MySQL) 4 01.04.2004 17:54:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt