Mehrfach-Checkbox-Inhalt in SQL-DB

XXdynastieXX

Mitglied
Hallo!

Und zwar habe ich folgende Checkboxen

Code:
    <td><input type="checkbox" name="musikrichtung1" value="hiphop">&nbsp;HipHop & R&B </td>
    <td><input type="checkbox" name="musikrichtung2" value="techno">&nbsp;Techno</td>
    <td><input type="checkbox" name="musikrichtung3" value="house">&nbsp;House</td>
    <td><input type="checkbox" name="musikrichtung4" value="reggae">&nbsp;Reggae</td>
    </tr>
    <tr>    
    <td><input type="checkbox" name="musikrichtung5" value="rock">&nbsp;Rock & Metal</td>
    <td><input type="checkbox" name="musikrichtung6" value="charts">&nbsp;Pop & Charts</td>
    <td><input type="checkbox" name="musikrichtung7" value="70er">&nbsp;70er & 80er</td>
    <td><input type="checkbox" name="musikrichtung8" value="livemusik">&nbsp;Livemusik & Konzerte</td>

Vorher hatte ich jedem dem gleichen Namen gegeben, sodass selbstverständlich nur eine Checkbox in die Datenbank eingetragen wird. Ich möchte aber dass jede "aktive" Checkbox eingetragen wird. Das kann z.B. sein indem sie mit Kommas hintereinander geschrieben werden.

Wie realisiere ich das am Besten?

Ich hab es versucht mit

Code:
$musikrichtung = $_POST["musikrichtung1"] " , ". $_POST["musikrichtung2"] " , ". $_POST["musikrichtung3"] " , ". $_POST["musikrichtung4"] " , ". $_POST["musikrichtung5"] " , ". $_POST["musikrichtung6"] " , ". $_POST["musikrichtung7"] " , ". $_POST["musikrichtung8"];

aber das ist wohl keineswegs die ideale lösung, da wenn keine box aktiviert wird, dennoch kommas eingetragen werden, falls meine version überhaupt funktioniert. hmmm

Liebe Grüße
 
Hi,

wenn du Komma separierte Werte haben möchtest, versuchs mal folgendermaßen
PHP:
$richtungen = array();
for($i=1;$i<=8;$i++){
  if(isset($_POST['musikrichtung'.$i])){
    $richtungen[] = $_POST['musikrichtung'.$i];
  }
}
$comma_separated = implode(",", $richtungen);
echo $comma_separated;

Gruß
Markus
 
Hallo!

Viel zu viel Code und viel zu unflexibel. ;)

Gebe den Checkboxen den gleichen Namen gefolgt von den eckigen Klammern:
Code:
name="musikrichtung[]"
Anschliessend schickst Du das Array (welches sich durch die eckigen Klammern ergibt) durch implode():
PHP:
if(isset($_POST['musikrichtung'])) {
    $db_eintrag = implode(",", $_POST['musikrichtung']);
}
$db_eintrag enthält nun die ausgewählten Musikrichtungen, getrennt durch Kommata.

Vorteil:
Du kannst das Formular um weitere Musikrichtungen erweitern (oder auch kürzen), ohne am übrigen Code rumbasteln zu müssen.

Gruss Dr Dau
 
Zurück