Claudia: Daten aus Datenbank in ein Select-Feld einfügen

Guten Abend,

Tom meinte ich soll ein zweiter Beitrag eröffnen, dieses mache ich hiermit!
http://forum.de.selfhtml.org/?t=217876&m=1498274

Ich werde es mit einer Datenbank versuchen. Mein HTML habe ich so vorbereitet

  
<select name="herkunft" id="herkunft">  
  
    <option value="0" label="Bitte wählen">Bitte wählen</option>  
  
    <optgroup label="Länder">  
    <option value="1" label="Deutschland">Deutschland</option>  
    <option value="9" label="Russland">Russland</option>  
    <option value="11" label="Schweden">Schweden</option>  
    <option value="21" label="Schweiz">Schweiz</option>  
    <option value="20" label="Österreich">Österreich</option>  
    </optgroup>  
  
    <optgroup label="Kontinente">  
    <option value="6" label="Afrika">Afrika</option>  
    <option value="3" label="Asia">Asia</option>  
    <option value="5" label="Orient">Orient</option>  
    <option value="2" label="Osteuropa">Osteuropa</option>  
    <option value="4" label="Südamerika">Südamerika</option>  
    </optgroup>  
  
</select>  

Nur ich habe 0 Ahnung wie ich die Datenbank anlegen soll dass ich beide optgroup mit EINER Abfrage gefüllt bekomme wenn dieses überhaupt möglich ist.

  1. Mahlzeit,

    Nur ich habe 0 Ahnung wie ich die Datenbank anlegen soll dass ich beide optgroup mit EINER Abfrage gefüllt bekomme wenn dieses überhaupt möglich ist.

    Kommt drauf an, was du vorhast. Willst du erst den Kontinent und dann das Land auswählen?

    In diesem Fall würde ich zwei Tabellen anlegen, einmal für die Kontinente und eine für die Länder.
    Dann erübrigt sich dein Problem mit der einen Abfrage, weil damit zwei wesentlich sinnvoller sind ;)

    Allerdings versteh ich dann das Dropdown nicht.
    Oder soll man wahlweise ein Land oder nen Kontinent auswählen können? Ich hab dein Problem noch nicht komplett verstanden, glaub ich.

    BTW: Osteuropa und Orient sind keine Kontinente.

    --
    42
    1. Hey,

      Kommt drauf an, was du vorhast. Willst du erst den Kontinent und dann das Land auswählen?

      das ganze sollte später so aussehen

      http://www.bilder-upload.eu/upload/522af6-1404674718.png

      Man kann nur eines später auswählen.

      1. Mahlzeit,

        Man kann nur eines später auswählen.

        Dann würde ich es so machen, Tabelle mit drei Spalten:

        id, art, name

        id -> Fortlaufende Nummer, vorzugsweise per auto_increment
        art -> Kontinent oder Land (Wahlweise als id oder String)
        name -> Der zugehörige Name, also entweder das Land oder der Kontinent.

        "art" kannst du z.B. auch mit

        1:land
        2:kontinent

        schreiben, dann kannst du numerisch sortieren. Im PHP machst du dann ein explode und wirfst die Zahl weg.
        Die Abfrage ist dann nur ein SELECT, weil alles in einer Tabelle ist und du kannst die hinsortieren, wie du lustig bist ;)

        --
        42
    2. Hallo,

      Allerdings versteh ich dann das Dropdown nicht.
      Oder soll man wahlweise ein Land oder nen Kontinent auswählen können? Ich hab dein Problem noch nicht komplett verstanden, glaub ich.

      es kann auch sein, dass Claudia selbst die Bedeutung von optgroup nicht wirklich verstanden hat.

      Mit optgroup lassen sich die Auswahlmöglichkeiten _eines_ select-Elements zu Gruppen zusammenfassen. Es bleibt aber trotzdem _ein_ Element mit _einer_ Auswahlmöglichkeit (Ausnahme: multiple). Aber optgroup hat nicht das Zeug dazu, eine hierarchisch gestaffelte Auswahl anzubieten. Dazu braucht man dann doch mehrere getrennte select-Elemente,

      BTW: Osteuropa und Orient sind keine Kontinente.

      Dafür aber Europa, Nordamerika und die Antarktis. Wobei letztere für viele Betrachtungen irrelevant sein mag.

      Ciao,
       Martin

      --
      Life! Don't talk to me about life!
        (Marvin, the paranoid android in Douglas Adams' "The Hitchhiker's Guide To The Galaxy")
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    3. Hi,

      BTW: Osteuropa und Orient sind keine Kontinente.

      Asia auch nicht (im Gegensatz zu Asien. Zumindest nach der üblichen Einteilung - m.E. ist Eurasiafrika ein zusammenhängender/-haltender Teil - Kontinent von lat. continere = zusammenhalten)

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Hello,

    Tom meinte ich soll ein zweiter Beitrag eröffnen, dieses mache ich hiermit!
    http://forum.de.selfhtml.org/?t=217876&m=1498274

    Damit kann der alte Thread jetzt vollkommen füs Antworten gesperrt werden, aber liebe Forumsgeister, bitte noch nicht löschen. Wir wollen noch drei vier Dinger rübertragen.

    Ich werde es mit einer Datenbank versuchen. Mein HTML habe ich so vorbereitet

    <select name="herkunft" id="herkunft">

    <option value="0" label="Bitte wählen">Bitte wählen</option>

    <optgroup label="Länder">
        <option value="1" label="Deutschland">Deutschland</option>
        <option value="9" label="Russland">Russland</option>
        <option value="11" label="Schweden">Schweden</option>
        <option value="21" label="Schweiz">Schweiz</option>
        <option value="20" label="Österreich">Österreich</option>
        </optgroup>

    <optgroup label="Kontinente">
        <option value="6" label="Afrika">Afrika</option>
        <option value="3" label="Asia">Asia</option>
        <option value="5" label="Orient">Orient</option>
        <option value="2" label="Osteuropa">Osteuropa</option>
        <option value="4" label="Südamerika">Südamerika</option>
        </optgroup>

    </select>

      
    
    > Nur ich habe 0 Ahnung wie ich die Datenbank anlegen soll dass ich beide optgroup mit EINER Abfrage gefüllt bekomme wenn dieses überhaupt möglich ist.  
      
    Datenbank ist nicht falsch, aber bei erkennbar so wenigen Daten für die Vorgaben reichlich überskaliert. Da kann man auch eine einfache Konfigurationsdatei nehmen:  
      
      
      
    Wie Du deine Select-Box aufbauen und die Post-Antwort berücksichtigen kannst, habe schon in dem Archivthread  
        Ein Beispiel aus dem Archiv:  
        <http://forum.de.selfhtml.org/archiv/2004/9/t90044/#m539234>  
    gezeigt.  
      
    Im Wiki findest Du eine einfache Lösung für eine Konfigurationsdatei:  
    <http://wiki.selfhtml.org/wiki/Artikel:INI-Datei_aus_einem_Array_erstellen>  
      
    Du kannst die Konfigurationsdatei also auch per Formular-Script ändern, wenn dies erforderlich wird. Aber ich sehe hier eigentlich harte Stammdaten, die vielleicht einmal jährlich eine Anpassung benötigen, Dafür muss man kein Datenbank-Interface stricken.  
      
    Oder sollen die User der Seite Kategorien hinzufügen/ändern/löschen/ können? Das müsste man schon wissen.  
      
    Wenn Datenbank, dann sieht dein Select-Bespiel auf jeden Fall nach zwei Tabellen und auch zwei Abfragen aus. Du kannst Dafür trotzdem die Funktion aus dem Archiv nehmen zum Aufbau des HTML-Codes. Aus den Datenbank-Abfragen erzeugst Du zwei Arrays mit "Id" und "Klartext" der Optionen/Alternativen.  
      
    Ach ja, Thema Optionen und Algernativen:  
    Sollen die Eigenschaften einwertig oder mehrwertig werden, also kann jemand bei den Ländern oder Kontinenten (oder was Du nachher da auch immer verwaltest) auch mehrere Vorschläge gleichzeitig  auswählen? Dann wäre <select multiple> die passende Wahl.  
    Vergiss nicht, einen Hinweis zu geben, dass das mit der Steuerungstaste funktioniert.  
      
      
      
      
      
      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    [Die ultimative Seite für Selbermacher](http://getscript.de/)
    
    1. Mahlzeit,

      Datenbank ist nicht falsch, aber bei erkennbar so wenigen Daten für die Vorgaben reichlich überskaliert. Da kann man auch eine einfache Konfigurationsdatei nehmen:

      Aber macht es wirklich Sinn, die Daten zu zereissen, wenn schon eine Datenbank existiert?
      Ich sehe ja keinen drin, aber evtl überseh ich ja was. Also wenn du nen guten Grund hast, du weisst, das ich manchmal lernfähig bin *g*

      --
      42
      1. Hello,

        Datenbank ist nicht falsch, aber bei erkennbar so wenigen Daten für die Vorgaben reichlich überskaliert. Da kann man auch eine einfache Konfigurationsdatei nehmen:

        Aber macht es wirklich Sinn, die Daten zu zereissen, wenn schon eine Datenbank existiert?
        Ich sehe ja keinen drin, aber evtl überseh ich ja was. Also wenn du nen guten Grund hast, du weisst, das ich manchmal lernfähig bin *g*

        Man muss eine Datenbank ja auch füllen vorher.
        Und man muss die Daten dann pflegen können.
        Und man muss die Daten sichern, eventuell umziehen auf einen anderen Server, ...

        Wenn das Projekt klein bleibt, reichen einfache Textfiles für solche Dinge.

        Wenn das Projekt größer werden soll, würde ich an C's Stelle lieber drei Monate mit einem CMS (Drupal oder Joomla) üben. Das macht diese Dinge dann schon richtig und noch viele mehr.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        Die ultimative Seite für Selbermacher
  3. Hallo Claudia,

    hast du in deinem Konzept vorgesehen, daß sich manche Länder auch über zwei Kontinente erstrecken?

    Grüße
    Gernot