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 ::

Webseiten professionell erstellen

Webseiten professionell erstellen 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 > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.04.2004, 12:27:22
tapferesschneid tapferesschneid ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 194
REGEXP() in MySQL

Hallo,

Wie muß diese in PHP funktionierende RegExp verändert werden, damit sie auch in MySQL geht (Prüft, ob Telefonnummern korrekt formatiert sind)?

PHP-Code:
$regexp '=^(d{1,2}?( d{2})*) d{1,2}?( d{2})*(-d{1,2}?( d{2})*)?$='

Code:
SELECT * 
FROM tabelle 
WHERE telefon REGEXP("=^(d{1,2}?( d{2})*) d{1,2}?( d{2})*(-d{1,2}?( d{2})*)?$=");
ergibt eine Fehlermeldung
Mit Zitat antworten
  #2  
Alt 03.04.2004, 13:56:49
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: REGEXP() in MySQL

Zitat:
Original geschrieben von tapferesschneid
Wie muß diese in PHP funktionierende RegExp verändert werden, damit sie auch in MySQL geht (Prüft, ob Telefonnummern korrekt formatiert sind)?
Da es keinen Standard gibt oder Du sicher auch keinen vorgegeben hast, wie Telefonnummern auszusehen haben, ist das müßig.
Zitat:
ergibt eine Fehlermeldung
Generell: Daten speichert man sinnvollerweise nur in einer später "verwurstbaren Form" in die Datenbank. Dann spart man sich in der Abfrage völlig dann unnötige, zeitaufwendige und fehleranfällige Klimmzüge.
Mit Zitat antworten
  #3  
Alt 03.04.2004, 20:15:05
tapferesschneid tapferesschneid ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 194
Re: REGEXP() in MySQL

Zitat:
Original geschrieben von meikel
Da es keinen Standard gibt oder Du sicher auch keinen vorgegeben hast, wie Telefonnummern auszusehen haben,
Darauf gehe ich jetzt mal nicht näher ein ...


Aber hat vielleicht jemand eine Antwort auf meine Frage?


__________
Edit:

Ich sehe gerade, daß der PHP-Code (im SQL-Code war’s korrekt) nicht korrekt dargestellt wurde. So sollte es aussehen:

PHP-Code:
$regexp '=^(d{1,2}?( d{2})*) d{1,2}?( d{2})*(-d{1,2}?( d{2})*)?$='

Geändert von tapferesschneid (03.04.2004 um 20:19:48 Uhr)
Mit Zitat antworten
  #4  
Alt 03.04.2004, 20:39:11
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: Re: REGEXP() in MySQL

Zitat:
Original geschrieben von tapferesschneid
>Darauf gehe ich jetzt mal nicht näher ein ...

Du solltest schon denn, ...

>Aber hat vielleicht jemand eine Antwort auf meine Frage?

... das wäre die Antwort auf Deine Frage. Würdest Du bei der Eingabe Landesvorwahl, nationale Vorwahl und Telefonnummer aufsplitten und in 3 Feldern aufbewahren, könntest Du Dir die nachfolgenden Klimmzüge völlig kneifen.
Mit Zitat antworten
  #5  
Alt 03.04.2004, 21:32:35
tapferesschneid tapferesschneid ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 194
Ok, ok, in meinem Fall geht es ausschließlich um die Speicherung deutscher Telefonnummern nach dem Schema
(0 12 34) 5 67 89
oder
(01 23) 45 67-89

Ich hab’ ein bißchen probiert und den Ausdruck noch einmal schärfer gemacht. Ergebnis:

Code:
SELECT *
FROM tabelle
WHERE telefonmnummer 
REGEXP("^(0([1-9] [0-9]{2}| [1-9][0-9])( [0-9]{2})*) [1-9][0-9]?( [0-9]{2})*(-[0-9]{1,2}( [0-9]{2})*)?$")
Mit Zitat antworten
  #6  
Alt 03.04.2004, 21:50:48
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
hallo tapferes schneiderlein!

was du da machst, ist wirklich tapfer! ich habe mich mal ausführlicher mit den regulären ausdrücken unter mysql beschäftigt...meine board-suche ist seitdem echt schnell und komfortabel, aber erst nach 5 stunden harter arbeit. schau mal da:

http://www.mysql.de/doc/de/Regexp.html
Mit Zitat antworten
  #7  
Alt 07.04.2004, 09:35:51
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
unter mysql kannst du nur POSIX ausdrücke verwenden. PCRE gehen nicht. zu mindest war es bei version 3.X so. ich denke auch nicht, das sie diese in 4.x eingeführt haben. von daher kann d w usw. nicht gehen!deinen regexp kannst du auch so schreiben:
Code:
^([0-9 ]+)[0-9 ]+$
zum testen von regexp empfehle ich dir den Regexp coach.
http://www.weitz.de/regex-coach/

sehr gut zum testen von POSIX + PCRE.

Geändert von MiH (07.04.2004 um 09:39:17 Uhr)
Mit Zitat antworten
Antwort


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

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:28:30 Uhr.


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


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