Gerald: Lieferland/kosten

Hallo Leute,

bei meinen Anmeldeformular gibt es die Rubrik LAND

<select name="txtland" size="1" style="width:100px;font-size:10px">
<option selected value="Austria"> Austria </option>
<option value="Deutschland"> Deutschland </option>
<option value="Schweiz"> Schweiz </option>
</select>

Die werden in die DB reingeschrieben und beim Warenkorb wieder angezeigt.

Jetzt möchte ich auch die Lieferkosten dazuschreiben.
5,-Euro Austria
6,-EuroDeutschland
7,-Euro Schweiz

Wie soll ich das am besten machen das beim Warenkorb beides steht?
LAND=.......
LIEFERKOSTEN=........

Danke schon mal im voraus Geri

  1. Hi,

    <select name="txtland" size="1" style="width:100px;font-size:10px">
    <option selected value="Austria"> Austria </option>
    <option value="Deutschland"> Deutschland </option>
    <option value="Schweiz"> Schweiz </option>
    </select>

    Als erstes würde ich das so umschreiben:

    <select name="txtland" size="1" style="width:100px;font-size:10px">
      <option selected value="1"> Austria </option>
      <option value="2"> Deutschland </option>
      <option value="3"> Schweiz </option>
    </select>

    als value von $_POST['txtland'] bzw. $_GET['txtland'] hast du dann die
    ID 1,2 oder 3 dadurch lässt sich das ganze besser erweitern, noch
    besser wäre es wenn du eine Tabelle in der DB anlegst wo es 2 spalten, u.U.auch 3 giebt.

    ----------------------------------------
    | id_land | land_name   | lieferkosten |
    ----------------------------------------
    |    1    | Austria     |     5        |
    ----------------------------------------
    |    2    | Deutschland |     6        |
    ----------------------------------------

    dann erstellst du daraus die <select>-Box ziemlich einfach und kansnt
    das auch schön ausgeben wieviel denn an lieferkosten anfallen.

    Wobei mir eins nicht klar ist, warum Deutschland, Schweiz (also
    deutsch) und Austria (english) warum nid Östereich? oder Germany +
    Switzerland??? finde das etwas diskriminierend den Österreichern
    gegenüber. und das obwohl ich badner bin, vll. aber auch gerade deshalb.

    MfG

    1. Hi,

      <select name="txtland" size="1" style="width:100px;font-size:10px">
      <option selected value="Austria"> Austria </option>
      <option value="Deutschland"> Deutschland </option>
      <option value="Schweiz"> Schweiz </option>
      </select>

      Als erstes würde ich das so umschreiben:

      <select name="txtland" size="1" style="width:100px;font-size:10px">
        <option selected value="1"> Austria </option>
        <option value="2"> Deutschland </option>
        <option value="3"> Schweiz </option>
      </select>

      als value von $_POST['txtland'] bzw. $_GET['txtland'] hast du dann die
      ID 1,2 oder 3 dadurch lässt sich das ganze besser erweitern, noch
      besser wäre es wenn du eine Tabelle in der DB anlegst wo es 2 spalten, u.U.auch 3 giebt.


      | id_land | land_name   | lieferkosten |

      |    1    | Austria     |     5        |

      |    2    | Deutschland |     6        |

      dann erstellst du daraus die <select>-Box ziemlich einfach und kansnt
      das auch schön ausgeben wieviel denn an lieferkosten anfallen.

      Ja ok dachte ich mir und habe in der DB eine Tabelle LANDversand angelegt - Das Problem ist wie kann ich sie ausgeben?
      Die Ausgabe Kunden
      $anlegen = 'INSERT INTO Kunden
                                (firma,
             anrede,.....
      schreibe ich in die DB>KUNDEN und gebe es nachher im Warenkorb aus!
      WIE und WO soll ich LANDversand hinschreiben damit es sichtbar – auswählbar und im Warenkorb ausgegeben wird??

      Wobei mir eins nicht klar ist, warum Deutschland, Schweiz (also
      deutsch) und Austria (english) warum nid Östereich? oder Germany +
      Switzerland??? finde das etwas diskriminierend den Österreichern
      gegenüber. und das obwohl ich badner bin, vll. aber auch gerade deshalb.

      »»
      Das liegt mir fern das ich die Österreicher diskriminiere - Austria zu schreiben war ich eben gewöhnt

      MfG

      Danke Geri

      1. Hi,

        Ja ok dachte ich mir und habe in der DB eine Tabelle LANDversand angelegt - Das Problem ist wie kann ich sie ausgeben?
        Die Ausgabe Kunden
        $anlegen = 'INSERT INTO Kunden
                                  (firma,
               anrede,.....
        schreibe ich in die DB>KUNDEN und gebe es nachher im Warenkorb aus!

        du verknüpfst die tabelle land mit der tabelle kunden indem du bei der tabelle kunden noch ein spalte namens 'land_id' oder so ähnlich anlegst.

        dann ein:
        $sql = "SELECT blablabla FROM kunden "
               ."INNER JOIN land "
               ."ON(land.id_land = kunden.land_id) ";
        $erg = mysql_querry($sql);
        while($daten = mysql_fetch_array($erg))
        {
          echo $daten['name'];
          echo $daten['lieferkosten'];
          echo $daten['land'];
          etc.
        }

        Wenn du natürlich das ganze jetzt nur für die eine firma machen willst, die gerade in ihren Warenkorb guggt dann

        $sql = "SELECT blablabla FROM kunden "
               ."INNER JOIN land "
               ."ON(land.id_land = kunden.land_id) "
               ."WHERE id_firma=$firma_id";
        $erg = mysql_querry($sql);
        $daten = mysql_fetch_array($erg):
        echo $daten['name'];
        echo $daten['lieferkosten'];
        echo $daten['land'];
        etc.

        WIE und WO soll ich LANDversand hinschreiben damit es sichtbar – auswählbar und im Warenkorb ausgegeben wird??

        na das kommt drauf an wo und wie du es hinschreiben willst.

        Danke Geri

        bitte.

        MfG

        PS: du bist nicht reinzufällig MI-Student und grad im 3ten Semester?

        1. Hi,

          Wenn du natürlich das ganze jetzt nur für die eine firma machen willst, die gerade in ihren Warenkorb guggt dann

          $sql = "SELECT blablabla FROM kunden "
                 ."INNER JOIN land "
                 ."ON(land.id_land = kunden.land_id) "
                 ."WHERE id_firma=$firma_id";
          $erg = mysql_querry($sql);
          $daten = mysql_fetch_array($erg):
          echo $daten['name'];
          echo $daten['lieferkosten'];
          echo $daten['land'];
          etc.

          bzw. für den angemeldeten Kunde wo du hoffentlich weist wer das ist

          $sql = "SELECT blablabla FROM kunden "
                 ."INNER JOIN land "
                 ."ON(land.id_land = kunden.land_id) "
                 ."WHERE id_kunde=$kunde_id";
          $erg = mysql_querry($sql);
          $daten = mysql_fetch_array($erg):
          echo $daten['name'];
          echo $daten['lieferkosten'];
          echo $daten['land'];
          etc.

        2. Hi,

          Hallo

          Ja ok dachte ich mir und habe in der DB eine Tabelle LANDversand angelegt - Das Problem ist wie kann ich sie ausgeben?
          Die Ausgabe Kunden
          $anlegen = 'INSERT INTO Kunden
                                    (firma,
                 anrede,.....
          schreibe ich in die DB>KUNDEN und gebe es nachher im Warenkorb aus!

          du verknüpfst die tabelle land mit der tabelle kunden indem du bei der tabelle kunden noch ein spalte namens 'land_id' oder so ähnlich anlegst.

          Mist wie konnte ich das vergessen :-(

          dann ein:
          $sql = "SELECT blablabla FROM kunden "
                 ."INNER JOIN land "
                 ."ON(land.id_land = kunden.land_id) "; // DAS war es was ich gesucht habe
          $erg = mysql_querry($sql);
          while($daten = mysql_fetch_array($erg))
          {
            echo $daten['name'];
            echo $daten['lieferkosten'];
            echo $daten['land'];
            etc.
          }

          Wenn du natürlich das ganze jetzt nur für die eine firma machen willst, die gerade in ihren Warenkorb guggt dann

          $sql = "SELECT blablabla FROM kunden "
                 ."INNER JOIN land "
                 ."ON(land.id_land = kunden.land_id) "
                 ."WHERE id_firma=$firma_id";
          $erg = mysql_querry($sql);
          $daten = mysql_fetch_array($erg):
          echo $daten['name'];
          echo $daten['lieferkosten'];
          echo $daten['land'];
          etc.

          WIE und WO soll ich LANDversand hinschreiben damit es sichtbar – auswählbar und im Warenkorb ausgegeben wird??

          na das kommt drauf an wo und wie du es hinschreiben willst.

          Danke Geri

          bitte.

          MfG

          Danke Daniel

          PS: du bist nicht reinzufällig MI-Student und grad im 3ten Semester?

          Nein, ich komme mir aber so vor - bin etwas(etwas??) aus der übung.

          ps:es wäre nett wenn du mir ein mail schreiben würdest damit ich dich mal kontaktieren kann. wannibo@sms.at

          1. Hi,

            ps:es wäre nett wenn du mir ein mail schreiben würdest damit ich dich mal kontaktieren kann. wannibo@sms.at

            ist, ok. mach ich bei gelegenheit wenn ich zuhause bin. darf die
            Geschäfts addy zu sowas nicht verwenden. daher wirst du wohl auch nicht
            sofort antowert erhalten wenn du mich versuchst zu kontaktieren, alles
            weitere klären wir würd ich sagen aber per mail.

            freut mich dir geholfen zu haben.

            MfG

    2. Hi Daniel,

      Als erstes würde ich das so umschreiben:

      <select name="txtland" size="1" style="width:100px;font-size:10px">
        <option selected value="1"> Austria </option>
        <option value="2"> Deutschland </option>
        <option value="3"> Schweiz </option>
      </select>

      Warum nicht
      at => Österreich
      de => Deutschland
      ch => Schweiz
      ?

      [..] und das obwohl ich badner bin [..]

      ich auch ;-)

      Gruß, Marian

      1. Hi,

        Warum nicht
        at => Österreich
        de => Deutschland
        ch => Schweiz

        Wenn dann
        <option value="1">at => Österreich</option>
        etc.

        im value sollte die ID des Landes stehen, ersleichtert die weitere arbeit damit.

        MfG

        1. Hi Daniel,

          Warum nicht
          at => Österreich
          de => Deutschland
          ch => Schweiz

          Wenn dann
          <option value="1">at => Österreich</option>
          etc.

          im value sollte die ID des Landes stehen, ersleichtert die weitere arbeit damit.

          Nein, ich mein <option value="de">Deutschland</de>
          Was de ist, weiß man, was 1 ist, nicht.

          Gruß, Marian

          1. Hi Daniel,

            Warum nicht
            at => Österreich
            de => Deutschland
            ch => Schweiz

            Wenn dann
            <option value="1">at => Österreich</option>
            etc.

            im value sollte die ID des Landes stehen, ersleichtert die weitere arbeit damit.

            Nein, ich mein <option value="de">Deutschland</de>
            Was de ist, weiß man, was 1 ist, nicht.

            Ja aber da kommen ca 60 Länder dazu –  von jedem Land kenne ich nicht die Abkürzung – somit ist es wohl egal – nehme ich an.

            Gruß, Marian

            nochmals danke cu Geri

            1. Hi Geri,

              Ja aber da kommen ca 60 Länder dazu –  von jedem Land kenne ich nicht die Abkürzung – somit ist es wohl egal – nehme ich an.

              http://de.selfhtml.org/diverses/sprachenkuerzel.htm#uebersicht_iso_3166

              Gruß, Marian

              1. Moin!

                Ja aber da kommen ca 60 Länder dazu –  von jedem Land kenne ich nicht die Abkürzung – somit ist es wohl egal – nehme ich an.

                http://de.selfhtml.org/diverses/sprachenkuerzel.htm#uebersicht_iso_3166

                Ist aber trotzdem keine gute Idee, ein Länderkürzel für diesen Zweck zu verwenden. Nur mit IDs könnte man problemlos "Österreich (Expressversand)" und "Österreich (Schneckenpost)" als Versandformen wählen, dafür zwei verschiedene Tarife berechnen und unabhängig von irgendeiner ID-Bezeichnung in der Datenbank speichern.

                Mit dieser ID kommt man sowieso nur bei MySQL stärker in Berührung, vernünftige Datenbanksysteme verstecken derartige Fremdschlüssel vor dem benutzenden Programm - insofern sollte man eben nicht den Fehler machen und dieser ID noch irgendeine Zusatzbedeutung mitgeben. Der Programmierer muß nicht wissen, dass die 1 für "Österreich" und die 14 für "Russische Enklave Ostpreußen" steht. Diese Informationen werden einmalig in der Datenbank gespeichert, die Liste künftig immer basierend auf einem Query generiert, und die ganze Zuordnung ID <-> Land ist für den Verarbeitungsvorgang absolut irrelevant.

                • Sven Rautenberg
          2. Hi,

            Nein, ich mein <option value="de">Deutschland</de>
            Was de ist, weiß man, was 1 ist, nicht.

            brauchst du auch garnicht wissen. angezeigt wird das zwischen
            <option></option> als wert wird aber falls vorhanden vlue="" übergeben.
            mach ich da nun "de" als value muss ich erstmal in der DB guggen welches
            land das überhaupt ist und welche ID es hat bevor ich es einem kunden
            zuordnen kann, mach ich als value aber die ID ist es wessentlich
            einfacher bei der weiterverarbeitung.

            MfG

            1. Hi Daniel,

              Nein, ich mein <option value="de">Deutschland</de>
              Was de ist, weiß man, was 1 ist, nicht.

              brauchst du auch garnicht wissen. angezeigt wird das zwischen
              <option></option> als wert wird aber falls vorhanden vlue="" übergeben.

              nein, ich mein nicht die benutzer, sondern den programmierer.

              Ja, eigentlich ist es egal. aber nur eigentlich ;-)

              Gruß, Marian

              1. Hi,

                nein, ich mein nicht die benutzer, sondern den programmierer.

                na wenn ich was programmier weis ich welche ID zu was gehört und kann auch mit 1,2,3 arbeiten.

                MfG

                1. Hi Daniel,

                  na wenn ich was programmier weis ich welche ID zu was gehört und kann auch mit 1,2,3 arbeiten.

                  Eben - und bei de/ch/at weißt du es leichter.

                  Gruß, Marian

                  1. Hi,

                    Eben - und bei de/ch/at weißt du es leichter.

                    solangs nur bei den 2 bleibt, wenn ich das aber weltweit mache
                    sicherlich nichtmehr, ich habs eher mit zahlen. und auch für das
                    programm und den code aufwand sind zahlen viel besser.

                    NIEDER MIT DEN BUCHSTABEN!

                    3420123746129452634519