- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-01-2006, 18:21
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Question Umlaute maskieren - demaskieren

Hallo,

ich weiß nicht recht, ob es sich in dieses Forum gehört oder unter php!?

Folgendes Problem habe ich:

In einer Tabelle kommt z. B. öfters ein Name mit einem Umlaut vor. z. B. Krämer. Wenn ich diesen Namen maskiert eingetragen habe (Kr& a u m l;mer) dann erhalte ich bei einer Abfrage mit where nachname='Krämer' kein Ergebnis.

Der andere Fall ist, wenn ich Bäumler so (unmaskiert) in der Tabelle erfasst habe und eine Abfrage nach where nachname='Baumler' stelle, dann bekomme ich auch bei Baumler die Daten von Bäumler.

Was muss ich tun, damit bei einer Abfrage z. B. Baumler ich auch nur Baumler erhalte und bei Bäumler auch nur Bäumler kommt??

und wie muss nun der Bäumler in meiner Tabelle erfasst werden - maskiert oder unmaskiert?

Bitte um Hilfe und vielen Dank im Voraus.
Mit Zitat antworten
  #2 (permalink)  
Alt 15-01-2006, 20:43
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

moin,

normalerweise solltest du die Daten unmaskiert in deiner Datenbank
speichern - bei der Ausgabe dann mit Hilfe von PHP in die entsprechenden
HTML-Codes umwandeln.

Deine einzige Möglichkeit beim Abfragen der vorhanden Daten ist die
Umwandlung der Sonderzeichen vor der Abfrage.

PHP-Code:
WHERE nachname='Krämer' 

Geändert von piep83 (27-01-2006 um 13:31 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 16-01-2006, 12:40
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard unmaskiert reinschreiben - vorher checken

Also wenn ich Bäumler unmaskiert in die Tabelle schreibe, dann besteht weiterhin das Problem, dass bei einer Abfrage where nachname='$nachname' - in meinem Beispiel wäre der Inhalt der variable Bäumler - auch die Daten des Baumlers angezeigt werden.

Wenn ich z. B. ein Formular mit einem Textfeld nachname habe und dort nach den Daten eines bestimmten Mitgliedes suchen will - in dem Fall gebe ich Bäumler ein, dann stimmt ja das Ergebnis nicht, da mir auch die Daten des Baumler auch angezeigt werden.

Da nützt ein Check des Inhalts der variable $nachname vorher doch auch nichts!??

Oder wie sollte der check aussehen?
Mit Zitat antworten
  #4 (permalink)  
Alt 16-01-2006, 14:10
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

hallo fan-maec,

die Umwandlung der Sonderzeichen vor der Abfrage bezog sich
lediglich auf
Zitat:
Wenn ich diesen Namen maskiert eingetragen habe (Kr& a u m l;mer) dann erhalte ich bei einer Abfrage mit where nachname='Krämer' kein Ergebnis.
bezogen auf den "Baumler" bzw. "Bäumler" versuch es mal mit LIKE

Geändert von piep83 (27-01-2006 um 13:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 16-01-2006, 17:32
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo piep83,

ich habe

a) die Einträge der nachnamen in meiner Tabelle alle nicht maskiert und

b)meine Abfrage, wenn ich dich richtig verstehe, geändert und das = Zeichen mit dem Wort like ersetzt.

PHP-Code:
... where nachname like $nachname .... 
Wenn ich den Bäumler abfrage, dann kommen nach wie vor auch die Daten des Baumler!

Mist! So funktioniert es leider auch nicht.

Das Problem muss doch schon mal irgendwie gelöst worden sein, habe aber weder im Forum noch bei den Tuts nichts gefunden.

Mit Zitat antworten
  #6 (permalink)  
Alt 16-01-2006, 19:05
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

hatte mal wieder ein Brett vor Kopf

MySql wandelt die deutsche Umlaute intern zur Sortierung um.

Code:
ä - ae
d.h. wenn du die Nachnamen eindeutig suchst mußt du in diesem
Fall doch die Daten in der Spalte "Nachname" maskieren um diese
dann eindeutig auszugeben

PHP-Code:
Bäumler -> Bämler 
Vor der Abfrage von "Bäumler" mußt du dann das "ä" maskieren.

PHP-Code:
WHERE nachname='Bämler' 
Bei der Abfrage von "Baumler" sollte dann auch "Bäumler" nicht
mehr ausgegeben werden.

Geändert von piep83 (27-01-2006 um 13:32 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 17-01-2006, 02:09
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Leider funktioniert dein Vorschlag nicht.

Ich habe einen Eintrag in der Spalte Nachname maskiert und deinen Vorschlag ausprobiert.

also steht in der Tab Spalte nachname darin

PHP-Code:
Bäumler 
Wenn ich jetzt im Formulartextfeld nachname mich "vertippe" und Baumler eingebe und abschicke

PHP-Code:
.... where nachname='Baumler' .... 
, dann erhalte ich die Daten vom Bäumler, was ja nicht stimmt!
Mit Zitat antworten
  #8 (permalink)  
Alt 17-01-2006, 09:40
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

moin moin,

etwas kurios ist das schon. hab das ganze bei mir mal selbst
ausprobiert - gab es keine Probleme, auch wenn die nachnamen
unmaskiert in der Datenbank liegen.

Was hast du den noch in der WHERE Klausel stehen?
Du nutzt aber MySQL oder?

Geändert von piep83 (27-01-2006 um 13:32 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 17-01-2006, 13:30
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habadere piep83,

ja, es ist MySql.

PHP-Code:
$sql="SELECT * FROM vorstandschaft where nachname='$nachname' and vorname='$vorname'";  
$result=mysql_db_query($db,$sql);
while (
$row=mysql_fetch_array($result)){ 

Hast du es so ausprobiert, dass du einen Eintrag
PHP-Code:
Bäer 
in deiner Tabelle stehen hast.

Dann machts du ein Abfrageformular und gibst beim Textfeld Nachname nur Baumler ein. Den gibt es aber nicht in deiner db. Als Ergebnis bekommst du dann die Daten vom Bäumler! So ist es bei mir. Probier es mal bitte aus, dauert doch nicht lange. Müsste somit bei dir dann das gleiche Problem geben. Oder nicht?
Mit Zitat antworten
  #10 (permalink)  
Alt 17-01-2006, 15:17
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

hallo fan-maec,

hab das ganze jetzt mehrmals probiert - gab keine Probleme.

Laß dir mal den übergeben Wert "$nachname" vom abgesendeten
Formular ausgeben bevor du ihn in die Abfrage übergibst. Schau dann
bitte im Quelltext wie der Wert ausgegeben wird.

PHP-Code:
echo $nachname;
$sql="SELECT * FROM vorstandschaft where nachname='$nachname'";  
$result=mysql_db_query($db,$sql);
while (
$row=mysql_fetch_array($result)){ 

Geändert von piep83 (27-01-2006 um 13:32 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 17-01-2006, 15:44
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke, dass du es ausprobiert hast.

Gesagt, getan!

PHP-Code:
echo $nachname // Es wird Baumler angezeigt, so wie ich es im Formular abgeschickt habe 
Das Formulartextfeld vorname lasse ich frei.

Als Ergebnis bekomme ich wieder die Daten vom

PHP-Code:
Bäumler 
Mit Zitat antworten
  #12 (permalink)  
Alt 17-01-2006, 16:12
piep83
 Junior Member
Links : Onlinestatus : piep83 ist offline
Registriert seit: Jan 2006
Beiträge: 116
piep83 ist zur Zeit noch ein unbeschriebenes Blatt
piep83 eine Nachricht über ICQ schicken
Standard

besteht die Möglichkeit, das du mir mal den Quellcode
mit dem Formular und der Abfrage zukommen lässt?

Geändert von piep83 (27-01-2006 um 13:32 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 17-01-2006, 17:03
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Freilich,

aber per email. Wie bekomme ich deine email-Adresse?
Mit Zitat antworten
  #14 (permalink)  
Alt 20-01-2006, 11:33
fan-maec
 Registrierter Benutzer
Links : Onlinestatus : fan-maec ist offline
Registriert seit: Apr 2003
Ort: 92648 Vohenstrauss
Beiträge: 43
fan-maec ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Interessierte,

das Problem besteht weiterhin!
Mit Zitat antworten
  #15 (permalink)  
Alt 20-01-2006, 15:27
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Welche MySQL-Version? ggf. update die mal, vielleicht ist es einfach ein Bug von MySQL (ja, auch sowas kommt mal vor XD)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Schwere Sicherheitslücke in PHP 5.3.9
Schwere Sicherheitslücke in PHP 5.3.9Die Sicherheitslücke erlaubt das Ausführen von PHP-Code über das Netzwerk. Suhosin bringt Abhilfe öffnet jedoch alte Probleme

02.02.2012 | Berni

Firefox 10 enthält neue Entwicklerwerkzeuge
Firefox 10 enthält neue EntwicklerwerkzeugeFirefox steht in der Version 10 zum Download bereit. Gerade Entwickeler dürften sich über die neuen Entwicklungswerkzeuge freuen.

31.01.2012 | phpler

 

Aktuelle PHP Scripte

Gästebuchservice Script ansehen Gästebuchservice Script

Eröffnen Sie ihren eigenen Gäsebuchservice und bieten Sie ihren Besuchern ein kostenloses Gästebuch an. Verdienen Sie an den Integrierten AD System. Viele Benutzerdeffinierte Einstellungen ermöglichen ihren Kunden eine gute Integration an das Layout ihrer

10.02.2012 maternet | Kategorie: PHP/ Gaestebuch
LizenzMaker

Mit dem PDF-LicenseMaker erstellen Sie völlig unkompliziert und innerhalb kürzester Zeit eine Lizenz für Ihre Software-Artikel im PDF-Format. Sie verwalten die Daten Ihrer Software, Lizenztexte, PDF-Dokumente und Lizenzgrafiken bequem über ein Webinter

10.02.2012 maternet | Kategorie: PHP/ PDF
Top 100 Counterservice mit Verzeichnis ansehen Top 100 Counterservice mit Verzeichnis

Sie erhalten in diesem Script ein Top 100 Verzeichnis mit einem integrierten Counterservice. Wenn Sie sich Registrieren erhalten Sie einen kostenlosen Counter für ihre Website. Wenn ihre Besucher auf den Counter klicken, erhalten Sie automatisch eine h

09.02.2012 maternet | Kategorie: WEBMASTER/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:01 Uhr.