Thomas Luethi: Insert einer Array-Checkbox

Beitrag lesen

Hallo,

Nun möchte ich einem Mitglied aus der Adressendatenbank mit seinen beherrschenden Sprachen verknüpfen. Da dies ja auch mehrere sein können, wollte ich dies mit checkbox und einer Verbindungstabelle realisieren.

Deine DB-Struktur ist mir nicht klar.
Ich gehe von folgendem aus:

Tabelle benutzerdaten
   userid, vorname, nachname, nickname, email, ...
Tabelle sprachen
  userid, de, fr, en, es, it, ru, ...

Dann kannst Du z.B. die MySQL-Query Stueck fuer Stueck zusammenbauen.

Formular:

<input type="checkbox" name="de" value="1"> Deutsch
<input type="checkbox" name="fr" value="1"> Englisch
<input type="checkbox" name="en" value="1"> Franzoesisch
u.s.w.

PHP-Skript:

$sql="INSERT INTO sprachen SET userid=$userid";

if ($REQUEST['de']==1)
   $sql.=", de=1 ";
else
   $sql.=", de=0 ";

if ($REQUEST['fr']==1)
   $sql.=", fr=1 ";
else
   $sql.=", fr=0 ";

u.s.w.

Die fertige Query sieht dann etwa so aus:
INSERT INTO sprachen SET userid=25, de=1, fr=0, en=1, es=0, it=1, ru=0

N.B. es gibt noch andere Varianten fuer die Syntax von Insert, siehe
http://www.mysql.com/doc/de/HANDLER.html

Um die Eintraege nachtraeglich zu aendern, z.B. wenn
ein Benutzer im Urlaub Spanisch gelernt hat,
baust Du die UPDATE-Query nach dem gleichen Muster zusammen.

Falls ich etwas falsch verstanden habe, beschreibe bitte Deine
verschiedenen Tabellen etwas genauer.

mfg
Thomas