Nach Postleitzahlenbereichen suchen

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

  • Nach Postleitzahlenbereichen suchen

    Hallo,

    habe mal im Forum gesucht, aber kein Thread trifft das Problem um das es geht. Die meisten wollen nur sortieren.

    Und zwar gibt es bei uns Außendienstmitarbeiter. Die sind für verschiedene Postleitzahlengebiete zuständig.

    Z.B. Herr ???

    10 000 - 13 999
    14 000 - 14 516

    Ein Besucher soll nun seine Postleitzahl eingeben können, so dass der entsprechende Außendienstmitarbeiter gefunden werden kann.

    Nun überlappen sich die PLZ der Außendienstmitarbeiter aber manchmal (selten).

    Jetzt kann ich die Tabelle ja so gestalten:

    id_aussendient | plz_max |plz_min

    Aber wäre das einfach abzufragen?


    Tabelle: PLZ

    id_aussendient | plz_max |plz_min


    SELECT id
    FROM plz
    WHERE (plz_min < $plz)
    AND (plz_max > $plz);


    Oder würdet ihr das anders machen ?
    Müsste ich dann den plz Spalten den Typ char geben, damit führende Nullen angegeben werden ? Aber kann man dann noch nach Größe sortieren ?
    Zuletzt geändert von antman; 05.10.2004, 13:59.
    Pickel ? Übergewicht ? Depressionen ?
    Brot, Kartoffeln und Milch sind Gift!
    http://www.paleofood.de

  • #2
    da du ja rein von der plz-länge her nur 100.000 verschiedene einträge haben könntest, aber auch das nicht annähernd erreichst, weil es de facte weniger plz gibt, könntest du einfach eine tabelle plz - außendienst_id anlegen und dann einfach die tabelle abfragen

    wenn du das nicht willst, dann würde ich mit BETWEEN arbeiten

    und lass die plz-spalte ja auf int
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Nein, geht doch nicht. Also du meinst so:

      Tabelle plz:

      id | plz

      1 | 29191
      1 | 18188

      ??

      Das wäre viel zu viel arbeit. Die habe immer Bereiche die die Mitarbeiter abdecken.

      Wie wäre es so:
      Tabelle: PLZ

      id_aussendient | plz_max |plz_min


      SELECT id
      FROM plz
      WHERE $plz BETWEEN plz_min AND plz_max;

      ?
      Pickel ? Übergewicht ? Depressionen ?
      Brot, Kartoffeln und Milch sind Gift!
      http://www.paleofood.de

      Kommentar


      • #4
        Original geschrieben von antman
        Das wäre viel zu viel arbeit. Die habe immer Bereiche die die Mitarbeiter abdecken.
        war ja nur ein vorschlag

        dann mach es mit between
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          @antman wenn du schon voreingenommen bist, warum fragst du

          Kommentar


          • #6
            Original geschrieben von asp2php
            @antman wenn du schon voreingenommen bist, warum fragst du

            Ich schwöre, ich habe drauf gewartet.
            Wieso voreingenommen? Ich habe gefragt, was ihr von dem haltet was ich gepostet habe.

            Würde ich es so machen:

            id_mitarbeiter | plz

            Bräuchte ich ca. 2 Jahre nur für die Eingabe der Postleitzahlen.
            Oder sehe ich das falsch.
            Pickel ? Übergewicht ? Depressionen ?
            Brot, Kartoffeln und Milch sind Gift!
            http://www.paleofood.de

            Kommentar


            • #7
              Original geschrieben von antman
              Oder sehe ich das falsch.
              ja, du könntest dir diesen ganzen neumodischen kram zunutze machen. schleife und extendend insert schimpft sich das glaube ich

              aber das nur am rande
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Hmm, so weit konnte ich mal wieder nicht denken.
                Denke immer ich muss alles per Hand eintragen.

                Wie meinst du das? Mit php. Extendedinsert?
                Pickel ? Übergewicht ? Depressionen ?
                Brot, Kartoffeln und Milch sind Gift!
                http://www.paleofood.de

                Kommentar


                • #9
                  Code:
                  INSERT INTO tabelle
                    (spalte_1, ..., spalte_n)
                  VALUES
                    (wert_1_1, ..., wert 1_n),
                    (wert_2_1, ..., wert_2_n),
                    ...,
                    (wert_1_n, ..., wert_x_n)
                  im mysql-handbuch steht's sogar mit richtigen beispielen
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Das ist doch ein normaler Insert.
                    Wo ist da die Schleife?
                    Pickel ? Übergewicht ? Depressionen ?
                    Brot, Kartoffeln und Milch sind Gift!
                    http://www.paleofood.de

                    Kommentar


                    • #11
                      Original geschrieben von antman
                      Das ist doch ein normaler Insert.
                      Wo ist da die Schleife?
                      stellst du dich eigentlich nur so doof, oder ...?

                      das statement für einen solchen insert lässt sich z.b. ganz gut per PHP in einer schleife zusammenstellen - und darum ging's doch wohl gerade, unnötige tipperei von hand zu vermeiden, oder?

                      aber wenn du nicht mal so ein kleines stückchen weit um die ecke denken kannst, dann solltest du's vielleicht doch besser von hand machen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12


                        die Schleife machst du in PHP, z.B.
                        PHP-Code:
                        $sql 'insert ... values ';
                        for ... 
                           
                        $sql .= '('.implode(',',$deinDatenArray).'),';
                        // letztes Komma noch abschneiden dann ab in die DB 

                        Kommentar


                        • #13
                          stellst du dich eigentlich nur so doof, oder ...?
                          Was soll das ? Natürlich bin ich so "doof". Oder meinst du ich versuche euch die Zeit zu vertreiben? Hatte bis vor kurzem noch überhaupt keine Ahnung vom Programmieren. Kannst ja die Leute, die zu blöd für dich sind ignorieren. Wäre dir nicht böse. Ehrlich. Jeder hat eine andere Ausgangsbasis, IQ oder was auch immer.

                          das statement für einen solchen insert lässt sich z.b. ganz gut per PHP in einer schleife zusammenstellen - und darum ging's doch wohl gerade, unnötige tipperei von hand zu vermeiden, oder?
                          Ja, darum ging es.

                          aber wenn du nicht mal so ein kleines stückchen weit um die ecke denken kannst, dann solltest du's vielleicht doch besser von hand machen.
                          Ich dachte das hätte etwas mit den erwähnten extendedinserts zu tun. So super auswendigg kenne ich mySQL noch nicht. Dachte das wäre etwas neues, speziell für solche Fälle wie diesen.

                          Aber, du kannst mich nochmal anranzen. Ich verstehe immer noch nicht wozu diese Lösung gut sein sollte. Bin wohl zu doof.

                          Mache ich es nach mrhappiness' Methode habe ich 99 999 Einträge in der DB.

                          Wenn ich jedem Mitarbeiter einen Bereich zuordne habe ich ca. 50 Einträge. Welchen Vorteil hätte seine Methode ?
                          Pickel ? Übergewicht ? Depressionen ?
                          Brot, Kartoffeln und Milch sind Gift!
                          http://www.paleofood.de

                          Kommentar


                          • #14
                            AD (außendienst) 1 betreut den bereich 48100 - 47900
                            AD 2 betreut 47901 - 52000
                            AD 3 betreut betreut 52001 - 53000

                            so, jetzt verläßt AD 3 das unternehmen und da AD 1 so viel weniger hat als AD 2 soll er das von AD 3 noch mit übernehmen

                            du hättest dann also:
                            AD 2: 47901 - 52000
                            AD 1: 48100 - 47900 UND 52001 - 53000; 48100 - 53000 geht ja nicht

                            kannst du das mit deiner struktur abbilden?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              du hättest dann also:
                              AD 2: 47901 - 52000
                              AD 1: 48100 - 47900 UND 52001 - 53000; 48100 - 53000 geht ja nicht

                              kannst du das mit deiner struktur abbilden?
                              Ja. Ich setze einfach die id des Mitarbeiters in die Spalte ID vor 48100-53000 ? Nein ?

                              id | plzmin |plzmax

                              1 47900 53000

                              Diese Bereich würde dann alles abdecken.

                              Abfrage:

                              PHP-Code:
                              $SQL ="SELECT id WHERE ".$plz." BETWEEN plzmin AND plzmax"
                              ?
                              Zuletzt geändert von antman; 06.10.2004, 11:36.
                              Pickel ? Übergewicht ? Depressionen ?
                              Brot, Kartoffeln und Milch sind Gift!
                              http://www.paleofood.de

                              Kommentar

                              Lädt...
                              X