dedlfix: Mehrere Werte speichern

Beitrag lesen

Tach!

<input type="checkbox" name="was[]" id="was">
  <label for="was"></label>
    Deutsch
Nun stellt sich mir die Frage, wie soll ich diese Daten in einer Datenbank speichern?

Als erstes müsstest du mal das Fomular ändern und den Input-Feldern ein value-Attribut spendieren, sonst kannst du die empfangenen Kreuzchen nicht den Sprachen zuordnen. Und eine ID muss dokumentweit eindeutig sein. Außerdem muss der Name im Label stehen, sonst ist das Label-Element sinnlos.

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.

Auch der Datentyp SET kommt auf dasselbe hinaus, ist jedoch einfacher zu erweitern.

In diesem Beispiel könnte ich dann die [] auch wieder entfernen, da jede Sprache eine eigene Spalte hat.

Ob du da ein Array oder einzelne Benennungen hast, ist relativ nebensächlich, was das Speichern in der Datenbank angeht.

Ganz anderes sieht es beim Update aus, wie gehe ich da vor? Lösche ich erst ALLE Einträge von diesem User, schreibe die angeklickten Felder komplett neu?

Das wäre eine Möglichkeit, eine andere ist, mit Mengen zu hantieren. Ermittle die Menge der nicht mehr angekreuzten und lösche diese.

Und wie sieht es beim auslesen aus, also wenn der User auf die Seite kommt und die Felder bearbeiten möchte?

Dann hast du eine Anzahl Datensätze, die du in einem Array ablegen kannst. Oder du hantierst mit GROUP_CONCAT(), dann hast du eine kommaseparierte Zeichenkette (die du auch zum Array machen kannst). Wenn du die HTML-Elemente einer Sprache ausgibst, musst du ermitteln, ob diese in der Liste der abgefragten enthalten ist.

Ich merke jetzt schon, hier kommen sehr viele Probleme auf mich zu oder? Wie speichert ihr solche Daten?

So wie es am besten im jeweiligen Fall passt, also SET (oder ENUM bei nur einer) oder zweite Tabelle.

Ein Ansatz habe ich bei Joomla gesehen, hier werden alle Daten in EINEM Feld gespeichert mit einem , getrennt, aber ich gehe davon aus, dass dieses noch um einiges schwerer ist zu speichern, bearbeiten und löschen?

Mit String-Verarbeitung und auch FIND_IN_SET() lässt sich einiges machen. Das kommaseparierte wäre jedenfalls analog zur Variante mit SET, dafür aber ohne Erweiterung der SET-Werte beim Hinzukommen einer Sprache und auch speicherintensiver (wobei letzteres heutzutage kein Problem mehr darstellt).

dedlfix.

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