phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] select box und array

[php] AW: [php] select box und array

Achim Gosse achim.gosse_(at)_nasa20.com
Mon, 24 Jan 2000 18:30:17 +0100


> 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