Php mysql trennen von Straße mit Hausnummer

Blackfog

Mitglied
Hallo,

Gibt es eine Möglichkeit einen Datensatz zu teilen und in zwei unterschiedlichen Spalten abzulegen?

Folgender Ausgangslage:

Test Str. 15a

Ist ein Datensatz. Ich bräuchte das ganze aber als 2 Datensätze. Sprich Test Str. Und 15a
Gibts dafür eine Möglichkeit das zu trennen?

Danke schonmal im Vorraus.
Grüße
 
Hi

(warum nicht gleich von Anfang an so gemacht? Normalisierung?)

Möglich ist es natürlich, es ist nur zu beachten, dass evt. nicht alle
Datensätze in der Form sind (damit stellt ich die Frage, wo man trennt)
zB. "Blablastraße 1 Stiege 2" macht die Leerzeichenmethode schon überflüssig
oder Einträge ohne Hausnummernangabe usw.

Und wo genau liegt das Problem?
 
Die Datensätze Können nicht normalisiert werden, da sie so von externen Anbietern übergeben werden. Daher müsste ich einen Weg finden das zu trennen, nach Möglichkeit. Das das nicht zu 100% funktionieren wird ist klar.
 
Schau mal hier
http://www.php-resource.de/forum/php-developer-forum/104217-strasse-und-hausnummer-trennen.html
, da wird das Thema ausführlich besprochen. Grundsätzlich kannst du mit regulären Ausdrücken arbeiten.
Du musst dabei aber viele Spezialfälle abfangen z.B. das erwähnte "Blablastraße 1 Stiege 2" verhindert, das du einfach nach Text + Nummer suchen kannst.

In dem verlinkten Beitrag wird empfohlen, Strasse und Hausnummer als Einheit anzusehen und einfach gemeinsam zu speichern, wäre das eine Option?
 
Straße und Hausnummer werden ja gemeinsam gespeichert. Für die Weiterverarbeitung wird aber die getrennte Variante benötigt.
Danke für den Link. Schaue ich mir mal an.
 
@Yaslaw: Dein Pattern lässt eine Menge Fälle ausser acht. Z.B. Was ist, wenn jemand Musterstraße2 eingegeben hat.
Dann bekommst du keine Hausnummer.
Und warum das U am Ende?
In Berlin gibt es Straßennamen der Form Straße 126. Die müsste man auf jeden Fall gesondert abfangen.
 
Dei 2 Spezialfälle fallen durch. Aber alle Spezialfälle kann man nie abfangen.

Das U. Für ungierig. Damit der erste .* in Kombination mit dem 'Oder nix' am Ende nicht einfach alles frisst.
 
Zurück