Mailinglisten-Archive |
> um jetzt die eigenschaften aus person wieder in klartext zu
> uebersetzen muss ich
> aus der tabelle eigenschaft die eigenschaften herausziehen wo
> eigenschaft.id = 1
> und eigenschaft.id = 2... aber fuer jede eigenschaft eine
> separate abfrage zu
> machen ist nicht gerade sehr elegant, oder?
>
> also dachte ich, die werte der tabelle eigenschaft in ein
> array zu schreiben,
> im array nach den werten zu suchen die auch in
> person.eigenschaft vorhanden
> sind, um diese dann im klartext auszugeben.
du kannst es auch mit weniger aufwand schaffen.
--- html form ---
<INPUT type="checkbox" name="check1" value="1">
<INPUT type="checkbox" name="check2" value="2">
<INPUT type="checkbox" name="check3" value="4">
<INPUT type="checkbox" name="check4" value="8">
<INPUT type="checkbox" name="check5" value="16">
beachte, die values bestehen aus 2er potenzen.
im php3 machst du nun folgendes
$checksum = $check1 + $check2 + ... + $check5;
$checksum speicherst du nun in mysql in einem integer feld.
wenn du es wieder ausliest, machst du folgendes:
$d = mysql_fetch(...);
// checkboxen, max summe = 31 (1 + 2 + 4 + 8 + 16)
$schritt = 1;
$i = 1;
while($i<=31)
{
if($d->checkboxen & $i)
// ja, diese checkbox war gesetzt!
else
// nein, diese checkbox war nicht gesetzt!!
$i *= 2;
$schritt++;
}
so kannst du (fast) beliebig viele checkbox values in einer integer
abspeichern.
anmerkung: diese technik basiert auf der binaeren darstellungsform der
angegebenen values.
/achim
achim Gosse mailto:achim.gosse_(at)_nasa20.com
n.a.s.a.2.0 gmbh http://www.nasa20.com
borselhof borselstr. 16c 22765 hamburg
speak.+49.40.39888288 fax.+49.40.39888299
registered linux user #122734
php::bar PHP Wiki - Listenarchive