Werte in Textfeld hinzufügen

stephandziurla

Erfahrenes Mitglied
Guten Morgen!

Eine kleine Frage:

Wenn ich in ein Textfeld in PHP Werte hineinschreibe und diese dann in eine DB speichere, und danach in dasselbe Textfeld weiterhin Werte hineinschreibe, diese hinzufügen, anstatt sie zu überschreiben

Ich hoffe ihr wisst was ich meine, hab dazu leider nichts gefunden und wäre schon wichtig.

Danke! ;)
 
Hmm okay...sorry! War nicht gut "gedeutscht".

Ich versuchs nochmal:
Ich habe in einer HTML-Datei ein Eingabeformular mit mehreren Checkboxes (in meinem Fall 30 Stück). Von diesen können eine Checkbox, aber auch mehrere angeklickt werden.
Bei Absenden des Formulars möchte ich die angeklickten Checkboxes in eine DB speichern, ohne aber 30 Spalten erstellen zu müssen.

Also dachte ich mir, dass ich eine Spalte erstelle, in der ich die Werte dann eintragen lasse. Bei einer angeklickten Checkbox gar kein Problem!
Wenn ich jetzt aber bspw. drei Checkboxes angeklickt habe, so wird doch immer nur der letzte Wert in die DB geschrieben oder?
Wie erreiche ich es, dass alle Werte in dieser einen Spalte in die DB gespeichert werden?

Ich hoffe es war ein wenig klarer formuliert
 
Also du willst in der DB zum Beispiel "1;3;4" eintragen, das heisst, das Checkbox 1, 3 und 4 markiert waren?!

Wenn du das Script nun neu lädst und Checkboxen 2 und 3 anwählst soll dort dann "2;3" drinstehen?
 
Richtig. Nur dass keine Zahlen, sondern String enthalten sein sollen, so dass ich später dann über eine Volltextsuche bestimmte Begriffe wieder herausfiltern kann.

Der letzte Satz von dir stimmt so also nicht, Aqua, der erste hingegen hat's voll getroffen ;)
 
Ich würde aber das nicht alles in die gleiche Spalte schreiben.

OK benenne die Checkboxen mit nummern, z.B.

Code:
<input type="checkbox" name="x1" value="true">
<input type="checkbox" name="x2" value="true">

Wenn du nun die Seite neu lädst (submit) kannst du mit folgendem Code auslesen welche Checkboxen angekreuzt sind:

PHP:
for ($i;$i<$anzahlCheckboxen;$i++) {
   $tmp = "x" . $i;
   if ($$tmp == "true") {
      echo "Checkbox " . $tmp . "angekreuzt<br>";
   }
}

Nun kannst du jeden Checkbox entweder einzeln in die DB eintragen, oder wenn du es trotzdem alles in der gleichen Spalte haben möchtest dann generierst du in der for-Schleife den String und tragst in dann nachträglich in die DB ein :D
 
aquasonic hat gesagt.:
Ich würde aber das nicht alles in die gleiche Spalte schreiben.

Hm....naja, über das Problem grübel ich schon drei Tage. Ich habe wie gesagt ein Eingabeformular. Das Ganze soll eine Art Adressverwaltung sein.
Möchte ich einen Eintrag tätigen, so muss ich halt die ganzen Daten wie Name, Anschrift, PLZ, Tel, Fax etc. etc. eingeben.

Zudem ist(!) jeder Eingetragene ein Händler. Der Händler kann ein Obst-, Gemüse, Fleisch-, Fisch-, Getränkehändler oder auch ein sonstiger Händler sein. Dazu gibt es diese 30 Checkboxes in dem Eingabeformular. Der Händler kann Frischobst, Tiefkühlobst, Naturobst oder ähnliches liefern - zu jedem Eintrag muss also mindestens 1 Checkbox angeklickt sein.
Wenn ich das Ganze jetzt speichere, habe ich meiner Meinung nach nur zwei Möglichkeiten:

(1) Ich gliedere alle Produkte auf und erstelle pro Produkt eine Spalte in der Tabelle. Dann hätte ich eine riesengroße Tabelle, in der u.U. nur eine "0" (für nicht angeklickt) oder "1" (für angeklickte Checkbox) steht.
(2) Ich speichere alle 30 Werte in einer Spalte; dann hätte ich eine 30stellige Zahl dort drin stehen, welches die Suche nach bestimmten Kriterien unheimlich aufbläht und ich mich schlicht totschreibe.


Variante 1 wollte ich verhindern. Variante 2 ist kompliziert, dumm und fast nicht durchzuführen.
Wie würdet ihr das denn machen?
Ich hatte halt überlegt, den "Namen" der Checkbox in eine Spalte der Tabelle hinein zu schreiben. Wenn mehrere Werte angeklickt sind, steht dort bspw. in der Tabelle: FrischobstTiefkühlobstBioprodukte.....
so kann ich dann über eine Volltextsuche nachschauen, in welchen Einträgen das Wortbestandteil "Tiefkühl%" vorkommt.

Oder gibt es vielleicht noch eine andere Variante, die mir vieles vereinfachen würde?
 
Es wäre wohl schon die schnellste und einfachste Lösung wenn du das so machen würdest ;) Obwohl es nicht vollständig normalisiert ist...Aber ich würde die Werte dann noch trennen, mit einem ; z.B.
 
Da geb ich dir vollkommen Recht. Begriffe wie Normalisierung etc. kannste echt knicken! Also ich als Azubi kann das nicht als Schulprojekt oder gar Abschlussprojekt benutzen *lol*
Aber wie auch immer. Ich denke auch, dass die von mir überlegte Variante die letzen Endes sinnvollste ist.
Hm, und dein "Skriptchen" wäre dann das richtige dafür? Ich steh gerade so aufm Schlauch, das ist echt kacke.......weil ich nicht schon wieder die Checkboxes umbenennen möchte.....aber ok: wenn's nur so geht, dann muss ich wohl in den sauren Apfel beißen!

Danke schonmal :-)
 
Zurück