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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
03.04.2004, 12:27:22
|
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
|
03.04.2004, 13:56:49
|
|
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.
|
03.04.2004, 20:15:05
|
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)
|
03.04.2004, 20:39:11
|
|
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.
|
03.04.2004, 21:32:35
|
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})*)?$")
|
03.04.2004, 21:50:48
|
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
|
07.04.2004, 09:35:51
|
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:
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)
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:28:30 Uhr.
|