Henrik Jahn: Postleitzahlen die mit "0" beginnen

'n Abend zusammen,

für die Suche in einer MySQL Adressdatenbank habe ich ein Skript geschrieben, das u.a. auch den numerische Wert der PLZ verwendet.
Das klappt wunderbar, so lange die PLZ >= 09999 ist, bzw. am String nichts verändert wird...

Wie kann ich in einem numerischen String eine "0" am Anfang "am Leben erhalten"?

Cheers,

Henrik

  1. hi,

    für die Suche in einer MySQL Adressdatenbank habe ich ein Skript geschrieben, das u.a. auch den numerische Wert der PLZ verwendet.
    Das klappt wunderbar, so lange die PLZ >= 09999 ist, bzw. am String nichts verändert wird...

    Wie kann ich in einem numerischen String eine "0" am Anfang "am Leben erhalten"?

    es gibt keinen "nummerischen string".
    entweder hast du einen string (bei dem dann das "problem", dass eine führende null unterdrückt wird, gar nicht auftritt), _oder_ eine zahl (bei der führende nullen nicht mit abgespeichert werden, oder, je nach umgebung, z.b. auch als indiz für eine zahl im oktalsystem stehen kann, z.b. bei javascript IIRC).

    warum verwendest du keinen string-typ für das DB-feld?

    gruss,
    wahsaga

    1. Ja, warum eigentlich nicht? :-)

      1. Hallo,

        Ja, warum eigentlich nicht? :-)

        ich kenne da so eine einfache Regel: alles womit man nicht rechnen muß, in Stringtypen.

        Gruß, Andreas

  2. Hello,

    Postlietzahlen sind nicht numerisch, sondern alphanumerisch. Das hat man uns bisher nur nicht so gerne so deutlich unter die Nase gerieben, weil der Kohlkopf uns ja versprochen hat, dass O- und W- verwinden werden in den blühenden Landschaften...

    Was da bisher geblüht hat, ist aber nur die Korruption.

    Grüße

    Tom

  3. für die Suche in einer MySQL Adressdatenbank habe ich ein Skript geschrieben, das u.a. auch den numerische Wert der PLZ verwendet.
    Das klappt wunderbar, so lange die PLZ >= 09999 ist, bzw. am String nichts verändert wird...

    Redest Du von MySQL oder von PHP? In letzterem Fall: Vermeide entweder, mit der PLZ-Variable zu rechnen (das ruft die automatische Typkonvertierung auf den Plan, die aus dem Text 01234 die Zahl 1234 macht), oder benutze zur Ausgabe der Postleitzahl die Funktion printf() mit der Schablone %05d ( = eine Zahl mit fünf Stellen, aufgefüllt mit führenden Nullen).

    Letzteres ist möglicherweise im Endeffekt einfacher, weil sicherer, denn die Typkonvertierung von PHP kann sich zeitweilig als störisches Biest erweisen.
    Aus diesem Grund hilft es auch gar nichts, wenn Du in MySQL eine Textspalte statt einer numerischen Spalte vorsiehst - durch PHP muß der Wert immer durch.

    Gruß,
      soenk.e

    PS: Texte werden in PHP mit dem . verkettet, nicht mit + .