---
title: "Checkboxen wieder aus DB lesen"
url: "https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","TCA"]
created: "2004-08-30"
last_reply: "2004-09-02"
replies: 9
solved: true
page: 1
pages: 1
lang: "de"
---

# Checkboxen wieder aus DB lesen

Extensions › Entwicklung · 9 Antworten · gelöst · gestartet 2004-08-30

## Frage

**Unbekannter Benutzer** · 2004-08-30 · [Beitrag #1](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/1)

Hallo Leute,

für meine Ext. habe ich im BE eine Eingabemaske um 8 Checkbox-Felder erweitert (über den Kickstarter). Alles schön ung gut, nur wie lese ich die Felder wieder aus ???

Es muss doch eine Typo3 eigene Funktion geben, suche schon wie blöde, finde (heute) aber wohl nichts mehr ...

Auf Typo3.org gibts folgendes dazu:

> In this array each entry is itself an array where the first entry is the label (LS) and the second entry is a blank value. The value sent to the database will be an integer where each bit represents the state of a checkbox in this array.

Na ja, bei 8 Checkboxen kommen da aber ne Menge Werte auf mich zu und da das BE nun mal auch die Häckchen richtig setzt, muss ich wohlk doch nicht das Rad neu erfinden.

Gibt´s denn da nichts von ratiopharm ...?  ;)

## Beste Antwort

**Morden** · 2004-09-02 · [Beitrag #3](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/3)

ich bin auch nicht so das mathegenie...trotz lk ;)

> Relativ simpel: 8 Boxen = 8 bit
> 1bit = Schalter 0 <-> 1 (bzw. checked <-> unchecked)
>
> 8 Boxen checked = 11111111 binär = 511 dezimal
> Jede 2. checked = 01010101 binär = 341 dezimal
>
> Bei einer Abfrage mit PHP sieht das dann für ein Feld mit 8 wählbaren
> Features zum Beispiel so aus:
>
> $k = 1;
> for ($m=0; $m<8; $m++)
> {
> if ($Features & $k)
> {
> $Featureset[$m]=1;
> }
> else
> {
> $Featureset[$m]=0;
> }
> $k *= 2;
> }

heisst es ja in der quelle...nur, wie setz ich das so um, dass den checkboxen auch die entsprechenden Werte aus ner Locallang zugeordnet und in einen marker geschrieben wird? und wie bau ich diese abfrage am effektivsten ein?
als php-newbie bräuchte ich nen ansatz, mit dem ich weiterarbeiten kann. :)

schonmal danke!

## Antworten

### [#2](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/2) · Unbekannter Benutzer · 2004-08-31

Gefunden  :)

<http://typo3.org/documentation/mailing-lists/user-list-de/thread/46058/?tx_maillisttofaq_pi1%5Bsword%5D=checkbox&tx_maillisttofaq_pi1%5Banswered_only%5D=0&tx_maillisttofaq_pi1%5Bmode%5D=1>

Leider gibt es wohl keine T3interne Funktion, da codet der Meister noch selbst  ;)

### [#3](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/3) · Morden · 2004-09-02 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

### [#4](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/4) · Unbekannter Benutzer · 2004-09-02

Na ja, du erhälst ein Array mit (wie im Bsp.) 8 Keys/Values, entweder hat ein Key den Wert 1 oder eben 0 - was du damit machst, ist dir ja überlassen, aber von Pos. 0 bis 7 hast du auch die Werte deiner Checkboxen von 0 bis 7 ...

Wie du die Ausgabe der ermittelten Werte gestaltest, häng ja davon ab, wie du die Checkboxen einsetzt ...

### [#5](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/5) · Morden · 2004-09-02

ok...im Backend soll der Redakteur z.b. so auswählen:

CB 1 : Sprache 1
CB 2 : Sprache 2
CB 3 : Sprache 3
CB 4 : Sprache 4             (--> hab halt nur 4 Checkboxen ;) )

Der Wert, denn ich auslese ist ja nicht Binär...Der Reddie hat bspw. 2 und
4 ausgewählt...dann steht in der DB der Dezimalwert 5 und wird dann umgerechnet in den Binärwert  0101 oder 101. oder baut der sich von hinten nach vorne auf? dann wäre es ja 1010 und somit Dez 10 ?!

Jedenfalls soll dann ein Marker --> $markerArray["###SPRACHE###"]
bin den Werten aus der Locallang...also in dem Fall "Sprache 2, Sprache 4" zugeordnet werden.

Und wie ich das nun mache, also von Binärwerten die Locallangwerte zuordnen und in nen Marker stopfen weiss ich leider nicht.

### [#6](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/6) · Unbekannter Benutzer · 2004-09-02

```php
$k = 1;
$Features = Wert_der_Checkboxen_aus_DB;
$Featureset = array();
for ($m=0; $m<4; $m++) { 
  if ($Features & $k) { 
    $Featureset[$m]=1; 
  } else { 
    $Featureset[$m]=0; 
  } 
  $k *= 2; 
}
```

Dein Reddie (sehr schön ;)) hat also 2 und 4 ange-x-t, dass Array $Featureset enthält also folgendes:

array (
  [0] => 0
  [1] => 1
  [2] => 0
  [3] => 1
)

Da du nun aber deine Sprache aus der locallang.php integrieren willst, machste halt folgendes:

```php
$k = 1;
$Features = Wert_der_Checkboxen_aus_DB;
$Featureset = array();
$languages = array('Wert locallang 1','Wert locallang 2','Wert locallang 3','Wert locallang 4');

for ($m=0; $m<4; $m++) { 
  if ($Features & $k) { 
    $Featureset[$m]= $languages[$m]; 
  } else { 
    $Featureset[$m]=0; 
  } 
  $k *= 2; 
}

$langOut = '';
foreach(Featureset as $val) {
  if ($val) $langOut .= $val.',&nbsp;';
}
```

In deinem Array steht dann:

array (
  [0] => 0
  [1] => 'Sprache2'
  [2] => 0
  [3] => 'Sprache4'
)

Nach der foreach-Schleife haste dann den Wert für deinen Marker ...

```php
$markerArray["###SPRACHE###"] = $langOut;
```

Natürlich kannst du die FOR-SChleife auch schon so umbauen, dass du direkt eine Var für dein  $markerArray["###SPRACHE###"] füllen kannst, der Umweg ist nur sinnvoll, falls du die "Values" und nicht die "Labels" der Checkboxen weiterbehalten willst ...

Direkter Weg ...

```php
$k = 1;
$Features = Wert_der_Checkboxen_aus_DB;
$languages = array('Wert locallang 1','Wert locallang 2','Wert locallang 3','Wert locallang 4');
$langOut = '';
$Featureset = array();
for ($m=0; $m<4; $m++) { 
  if ($Features & $k) { 
    $langOut .= $languages[$m]; 
  }
  $k *= 2; 
}
```

Hoffe nichts übersehen zu haben, aber du wirst das schon packen  ;)

### [#7](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/7) · Morden · 2004-09-02

:D  :D  :D  :D  :D  :D

Danke! Das war die Lösung! :)

Jetzt bräuchte ich nur noch ne Lösung für ein kosmetisches Problem. ;)

Wenn ich nun zwei oder drei werte habe, möchte ich diese durch Kommata getrennt haben. Mach ich das Komma in die Schleife, kommt auch hinter dem letzten Eintrag ein Komma.

Wie umgeh ich das?

### [#8](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/8) · Unbekannter Benutzer · 2004-09-02

Ich will ja nicht unhöflich sein, aber schau dir mal die PHP String-Funktionen an, da wirst du fündig und kannst dir einen Reim drauf machen, wie du dein Schönheitsproblem lössen kannst.

Ich kann dir ja nicht alles vorkauen, wenn du PHP-Neuling bist, hilft das wenig ...

### [#9](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/9) · Morden · 2004-09-02

Sag mir nur wo...dann biste erlöst. Hast mir heute schon genug geholfen! :)

### [#10](https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen/10) · Unbekannter Benutzer · 2004-09-02

<http://www.php.net/manual/de/>

Entweder per strlen() die Länge der Ausgabe ermitteln und dann per substr() das letzte ,&nbsp abschneiden ...

Oder du bleibst bei der ersten Variante, füllst nicht direkt deine Ausgabe-Var sondern das Array und baust in die foreach-Schleife eine Abfrage ein -> count(array()), Länge des Arrays und wenn Ende erreicht, dann Ausgabe ohne ,nbsp ...

So, ich habs jetzt nicht ausgeführt, aber jetzt hast du genug Denkanstöße ...

Viel erfolg,
Commodore

---

Quelle: „Checkboxen wieder aus DB lesen“, typo3.net, https://www.typo3.net/d/15344-checkboxen-wieder-aus-db-lesen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
