Hallo, ich wollte mal fragen, ob es möglich ist mit einem multiple select (dropdown mit mehrfachauswahl) möglich ist, verschiedene werte in verschiedene Tabellenfelder einzufügen? also z.b. Wert 1 wird bei auswahl den wert "yes" in das Feld "A" einfügen. Wert 2 den wert "yes" in das Feld "B".
geht sowas?
wenn ja wie?
lg max
Mit nem Multiple Select in verschiedene Felder einer db eintragen?
-
-
Hallo, ich wollte mal fragen, ob es möglich ist mit einem multiple select (dropdown mit mehrfachauswahl) möglich ist, verschiedene werte in verschiedene Tabellenfelder einzufügen? also z.b. Wert 1 wird bei auswahl den wert "yes" in das Feld "A" einfügen. Wert 2 den wert "yes" in das Feld "B".
geht sowas?
wenn ja wie?
lg maxKlar. Wenn der Wert 1 ist, trägste das in Feld A wenn nicht das andere. Mit na if Abfrage ist das doch kein Ding, wo liegt da das Problem?
Oder hab ich deine Frage falsch verstanden?! =)
-
naja es sind insgesamt 23 werte :D. wollte fragen, obs da ne bessere lösung für gibt?
-
Ne switch Anweisung....
switch...
case soundo {
soundso...
}
Lies dir das in der Doku durch, wenn du damit nichts anfangen kannst... =)
-
Du schreibst ein assoziatives Array mit folgendem Aufbau
Dann guckst du, was von dem multiple select zurückgegeben wurde, uns konstruierst deine query entsprechend.
PHP
Alles anzeigenfor ($i=0;$i < count($_POST['auswahl']); $i++){ $thisElement=$_POST['auswahl'][$i]; if (in_array($thisElement,$mapping)){ //in $mapping gucken, welches Feld dem aktuellen Wert zugeordnet ist $query="INSERT INTO mytable (".$mapping[$thisElement].") VALUES ('yes')"; mysql_query($query) or die(mysql_error()); } }
Andere Frage, bist du sicher, dass du jedes "yes" in einer einzelnen spalte speichern willst, und nicht zum Beispiel alle gewählten Optionen durch Komma getrennt in einem Feld speicherst? Wäre viel weniger Speicheraufwand.
-
Du schreibst ein assoziatives Array mit folgendem Aufbau
Dann guckst du, was von dem multiple select zurückgegeben wurde, uns konstruierst deine query entsprechend.
PHP
Alles anzeigenfor ($i=0;$i < count($_POST['auswahl']); $i++){ $thisElement=$_POST['auswahl'][$i]; if (in_array($thisElement,$mapping)){ //in $mapping gucken, welches Feld dem aktuellen Wert zugeordnet ist $query="INSERT INTO mytable (".$mapping[$thisElement].") VALUES ('yes')"; mysql_query($query) or die(mysql_error()); } }
Andere Frage, bist du sicher, dass du jedes "yes" in einer einzelnen spalte speichern willst, und nicht zum Beispiel alle gewählten Optionen durch Komma getrennt in einem Feld speicherst? Wäre viel weniger Speicheraufwand.
xD Ja, klar, so isses am sinnvollsten, tut mir leid... =) Der Wald vor lauter Bäumen usw....
Dem letzten schließe ich mich auch an.und solche Infos speichere ich immer binär ab. Yes und No ist schlecht zu überblicken.aufwendig.
-
Das mag stimmen mit dem Array und Switch, bloß ist das wahrscheinlich nicht gerade sinnvoll.
Was machst du, wenn eins hinzukommt? Wenn jemand weniger oder mehr als 23 Stück auswählt?
Mach das am besten mit einer seperaten Tabelle. Da steht dann der Bool-Wert und ein Fremd-Schlüssel-Verweis auf die Tabelle, wo du 23 Stück einfügen wolltest. Das macht aber nur Sinn, wenn mit dem Yes/No noch etwas zusätzliches verknüpft wird, ansonsten kannst du es auch anders direkt in der Tabelle speichern:
-Die Anzahl der Yes als Int
-Als Bitset (SET)Viele liebe Grüße
The User