Der Martin: Mehrere Werte speichern

Beitrag lesen

Hallo,

Ich stehe heute mal wieder vor einem Problem wo ich einfach nicht weiter komme. Es gibt ein Bereich auf meiner Seite wo der User seine Sprache wählen kann. Es ist auch eine Mehrfachauswahl möglich.

mehrere Sprachen? Das irritiert mich und schreit nach einer genaueren Erklärung.

Dieses habe ich über „checkboxen“ gelöst.

Für eine mögliche Mehrfachauswahl vermutlich das Sinnvollste.

<input type="checkbox" name="was[]" id="was">

<label for="was"></label>
  Deutsch
<br>
  <input type="checkbox" name="was[]" id="was">
  <label for="was"></label>
  Holländisch
<br>
  <input type="checkbox" name="was[]" id="was">
  <label for="was"></label>
  Tschechisch
<br>
  <input type="checkbox" name="was[]" id="was">
  <label for="was"></label>
  Türkisch
<br>
  <input type="checkbox" name="was[]" id="was">
  <label for="was"></label>
  Russisch
<br>

  
Zum Markup:  
1\. Die br-Elemente sehen da ziemlich unbeholfen aus; sinnvoller wäre hier IMO eine Liste, deren li-Elemente die Checkbox und das zugehörige Label enthalten. Die sind auch "von Haus aus" Blockelemente".  
2\. Mehrere Elemente können nicht dieselbe ID haben - erstens schon aus Prinzip nicht, zweitens hier erst recht nicht, weil dann die Zuordnung von Label und Control nicht eindeutig ist.  
3\. Der Text (z.B. "Deutsch") gehört als \_Inhalt\_ in das label-Element, andernfalls ist das label ja ziemlich zweckfrei.  
4\. Sprachbezeichnungen sollten möglichst auch in der jeweiligen Sprache formuliert sein, also "Deutsch", "Français", "Nederlands" usw., zumal "Holländisch" auch sachlich nicht korrekt ist (Noord-Holland und Zuid-Holland sind Provinzen der Niederlande).  
  

> Nun stellt sich mir die Frage, wie soll ich diese Daten in einer Datenbank speichern?  
  
Da gibt's natürlich mehrere Ansätze. Mindestens.  
Man könnte die values (die in deinem Code-Auszug übrigens fehlen) einfach mit einem geeigneten Trennzeichen (Blank, Komma) zu einem String verketten - und dafür selbstverständlich ISO-Sprachkürzel verwenden. Dann käme etwas wie "de,cs,ru" heraus.  
Man kann ebensogut pro Sprache eine Boolean-Spalte in der DB vorsehen und deren Wert ggf. auf true setzen. Nachteil: Wenn man nachträglich eine Sprache hinzufügt, muss man die DB-Struktur umbauen.  
  

> Für mich kommen zwei Optionen in Frage, ich lege eine Tabelle mit „sprachen“ an, In dieser befinden sich Spalten und zwar für jede Sprache eine. In diesem Fall wären dieses 5 Spalten. Nachteil dieser Lösung ist, wenn weitere Sprachen hinzukommen muss die Tabelle jeweils angepasst werden.  
  
Das meinte ich.  
  

> Überlegung zwei, ich lege eine Tabelle an mit „sprachen“ dort befinden sich drei Spalten „id, userID, Sprache“  Alle Felder die vom User angeklickt werden, werden schmerzlos untereinander in dieser Tabelle gespeichert.  
  
Das könnte auch noch eine elegante Lösung sein, hängt aber davon ab, wie und wofür du die Daten verwendest.  
  
Ciao,  
 Martin  

-- 
F: Kennt jemand einen Automobilfilm?  
A: Der mit dem Golf tankt.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
0 74

Mehrere Werte speichern

Martin_Online
  • php
  1. 0
    Der Martin
    1. 0
      Martin_Online
      1. 0
        Der Martin
        1. 0
          Martin_Online
          1. 0
            Der Martin
            1. 0
              Martin_Online
              1. 0
                Tom
                1. 0
                  Martin_Online
                  1. 0
                    rimi
                2. 0
                  molily
                  1. 1

                    Mehrere Lösungswege eines Threads zulassen

                    Tom
                    • zu diesem forum
                    1. 0
                      Martin_Online
                      1. 0
                        Tom
                        1. 0
                          Martin_Online
                          1. 0
                            Tom
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Tom
                                  1. 1
                                    dedlfix
                                    1. 0
                                      Tom
                              2. 0
                                Tom
                              3. 0
                                molily
                            2. 0
                              dedlfix
                              1. 0
                                Martin_Online
                                1. 0
                                  Tom
                                2. 0
                                  dedlfix
                              2. 0
                                Tom
                                1. 0
                                  dedlfix
                            3. 0

                              Neuer Ansatz

                              Martin_Online
                              1. 0
                                Martin_Online
                                1. 1
                                  Auge
                                  1. 0
                                    Martin_Online
                                    1. 0
                                      molily
                                      1. 0
                                        Martin_Online
                                        1. 0

                                          Nachtrag

                                          Martin_Online
                                          1. 0
                                            molily
                                          2. 1
                                            Christian Kruse
                                        2. 0
                                          molily
                          2. 0
                            molily
                            1. 0
                              Christian Kruse
                              1. 0

                                Lange nichts gehört

                                Matthias Apsel
                                • menschelei
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Christian Kruse
                                2. 0
                                  Christian Kruse
                                  1. 0
                                    molily
                                    1. 1
                                      Christian Kruse
                                      1. 1
                                        Christian Kruse
                                      2. 0
                                        molily
                                        1. 0
                                          Christian Kruse
                    2. 0

                      Das Streben nach einer angemessenen Lösung

                      molily
            2. 0
              Martin_Online
            3. 0
              Martin_Online
              1. 0
                Der Martin
                1. 0
                  Martin_Online
                  1. 0
                    dedlfix
                    1. 0
                      Martin_Online
                      1. 0
                        dedlfix
                        1. 0
                          Martin_Online
                          1. 0
                            dedlfix
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Martin_Online
                                2. 0
                                  molily
                                  1. 1
                                    dedlfix
                                    1. 0
                                      molily
                                      1. 0
                                        dedlfix
                                      2. 1
                                        Christian Kruse
  2. 0
    dedlfix
  3. 0
    molily
    1. 0
      Martin_Online
      1. 0
        molily
  4. 0
    Martin_Online
  5. 0
    hotti