Hello,
3 Tables: 1 für den Benutzer (ID, Name, etc), 1 für die Gebiete (ID, Bezeichnung), 1 Zwischentable (benutzerid, gebietid)
Und die Gebiete kannst Du doch ausgeben:
Mit einem Select das Array der Gebiete sammeln
$_gebiet[idx]['ID']
['BEZEICHNUNG']
aus der Zwischentabelle
while ($_rec = mysql_fetch_assoc($res))
{
$_usergebiet[$_rec['ID']] = true;
}
idx wird von (while $_gebiet[]=mysql_fetch_assoc($res)) durchgezählt.
Dann kannst Du doch die möglichen Gebiete im Formular ausgeben:
if (is_array($_gebiet))
foreach($_gebiet as $key => $_val)
{
$checked = '';
if (isset($usergebiet[$_val['ID']]
{
$checked = ' checked="checked"';
}
$ckeck .= "<p class="check"><input type="checkbox"\n".
" name="check[gebiete][{$_val['ID']}]"\n".
" value="{$_val['ID']}$checked"\n".
">{$_val['BEZEICHNUNG']}</p>\n";
}
und an der entsprechnden Stelle kannst Du nachher $check ausgeben
Im Post-Script kommt das dann so an:
$_POST['check']]'gebiete'][<ID>] == <ID> wobei <ID> für den Wert der ID steht
Abfragen kannst Du das dann so:
if (is_array($_POST['check']]['gebiete']))
foreach ($_POST['check']]'gebiete'] as $key => $val)
{
if($key = $val)
{
$values .= ' ..... # Aufbau der Values für das Insert in die Zwischentabelle
}
}
Je nachdem, wie kritisch das System ist, muss man natürlich noch einen Respinse/Request-Vergleich durchführen. Das bedeutet, dass alle Daten, die an das Formular augegeben werden, in die Session geschrieben werden und vom User nur Daten ausgewählt werden können, die in der Session stehen, also ihm zur Auswahl angeboten worden sind.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau