Postleitzahlen sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Postleitzahlen sortieren

    Hallo alle zusammen. Habe da mal ne Frage. Habe ein Anmeldeformular wo der User die Postleitzahl eingeben kann. Nun will ich die Herkunft der User anhand der PLZ sortieren. Also z.B.

    0xxxx = 20 User
    1xxxx = 21 User usw.

    habe versucht die Postleitzahl als einfache Zahl anzusehen und folgendes versucht:

    PHP-Code:
    $plz1=mysql_num_rows(mysql_query("select * from mt_user where plz>'9999' and plz<'20000'"));
    $plz2=mysql_num_rows(mysql_query("select * from mt_user where plz>'19999' and plz<'30000'")); 
    leider wird dies nix, da die Daten ja als int in der DB gespeichert werden müssten und da habe ich ein Problem bei dem 0ér Plz-Bereich.

    Ich würde mich über eine Lösung freuen. Danke schon mal für eure Hilfe.

    Mit freundlichen Grüßen
    CashMuetze

  • #2
    int (5) unsigned zerofill

    http://www.mysql.de/doc/de/Numeric_types.html

    oder mach ein varchar(5) draus (braucht aber mehr platz auf dem server)
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      warum machst du die Spalte mit den PLZ's nicht vom Typ Char? schon kannst du sortieren, auch mit führender 0.
      it's not a bug,
      it's a feature!

      Kommentar


      • #4
        "unsigned zerofill" hat Abhilfe geschafft.. thx an alle.

        Mfg
        CashMuetze

        Kommentar


        • #5
          SQL! *verschieb*

          Kommentar


          • #6
            Hallo!!!

            Ich will nur noch ein paar kurze Anregungen geben...
            1) Ich persönlich würde die PLZ als VARCHAR(5) speichern.......
            2) Wenn Du eine Statistik ausgeben willst, wieviele User aus den verschiedenen PLZ-Bereichen kommen, könntest Du doch in Deiner Tabelle noch eine Spalte plz_bereich anlegen. Diesen PLZ-Bereich kannst Du ganz einfach mit PHP ermitteln und automatisch eintragen lassen. Der Vorteil hierbei ist, daß sich die Statistik mit einem einzigen SQL-Befehl abfragen lässt:
            PHP-Code:
            SELECT plz_bereich,COUNT(*) FROM mt_user GROUP BY plz_bereich 
            Das finde ich praktischer als 10 DB-Abfragen und dürfte auch laufzeitfreundlicher sein...

            So, das war's dann.....

            Gruß,
            Lugi.

            Kommentar


            • #7
              @lugi, sorry, aber das ist unsinn. warum sollte man eine zahl in einem string/char feld speichern? damit es schön langsam wird?
              und die plz-bereiche kann man auch so abfragen. ohne zusatzfeld und auch ohne 10 abfragen
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Original geschrieben von schmalle
                @lugi, sorry, aber das ist unsinn. warum sollte man eine zahl in einem string/char feld speichern?
                weil man vielleicht auch user berücksichtigen will, die nicht aus D sind?

                andere länder haben ja nicht nur 5-stellige postleitzahlen, und auch nicht nur rein nummerische ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Original geschrieben von wahsaga
                  weil man vielleicht auch user berücksichtigen will, die nicht aus D sind?
                  davon ist hier ned die rede :P
                  h.a.n.d.
                  Schmalle

                  http://impressed.by
                  http://blog.schmalenberger.it



                  Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                  ... nur ohne :-)

                  Kommentar


                  • #10
                    @schmalle:
                    Verrätst Du mir auch, wie man die Anzahl der User aus den PLZ-Bereichen von 0-9 mit einer Abfrage ermitteln kann???
                    Ist nur so interessehalber, weil mir dazu keine Lösung einfällt! Der Punkt ist doch hierbei, daß Du mit der "GROUP BY"-Funktion arbeiten musst und das Problem ist, daß diese Funktion nur auf die erste Ziffer der PLZ anzuwenden ist...
                    Oder dachtest Du an eine PHP-basierte Lösung?

                    Gruß,
                    Lugi.

                    Kommentar


                    • #11
                      mit count(), between und group kommt man da schon zu rande

                      und selbst wenn man auch ausländische plz hat, kommt man mt varchar(5) wie angedacht auch ned weiter
                      h.a.n.d.
                      Schmalle

                      http://impressed.by
                      http://blog.schmalenberger.it



                      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                      ... nur ohne :-)

                      Kommentar


                      • #12
                        ja, wenn du mit between arbeitest, dann hast du ja wieder 10 Abfragen, oder täusch ich mich da???

                        Kommentar


                        • #13
                          machste n join?!?
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            du täuschst dich...

                            www.mysql.com -> BETWEEN.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              ich weiß bereits, was between macht....
                              aber ich kann mit between nicht mit einer abfrage rausfinden wieviele user in plz-bereich 0, wieviele in 1, ..., wieviele in 9 sind!!! Wie soll das gehen???
                              Ergo: Ich brauche 10 Abfragen.....

                              Kommentar

                              Lädt...
                              X