checkboxen aus db vorselektieren

Godstyle

Erfahrenes Mitglied
Moin Leute,

ich versuche checkboxen aus einer DB vorzuselektieren, ich zeige euch hier mal wie die Checkboxen in der DB gespeichert werden:

PHP:
<?php
  $anzahl = count ( $_POST['hobby'] );

  if ( $anzahl == 1 )
  {
    $hobby = htmlspecialchars ( $_POST['hobby'][0] );
  }
  elseif ( $anzahl > 1 )
  {
    $hobby1e = array ();

    foreach ( $_POST['hobby'] as $hobby1 )
    {
      $hobbys[] = htmlspecialchars ( $hobby1 );
    }

    $hobby = implode ( '-', $hobbys );
$updatehob = mysql_query("UPDATE profil Set hobby = '$hobby' WHERE user = '$user'");

	
  }
  else
  {
    echo 'Kein hobby gew&auml;hlt!';
  }
?>
<form action="<?PHP print ( $_SERVER['PHP_SELF'] ); ?>" method="post">
  <input type="checkbox" name="hobby[]" value="Sport" /> 1
  <input type="checkbox" name="hobby[]" value="Kino" /> 2
  <input type="checkbox" name="hobby[]" value="Unterhaltung" /> 3
  <input name="senden" type="submit" value="Absenden">
</form>

nun möchte ich das wenn der User später seine Interessen ändern möchte, die alten einträge direkt angeklickt hat. Kann mir da jemand helfen?

glg Godstyle
 
Wenn die Seite angezeigt wird, liest du als erstes die Daten des Users aus und übergibst den Inhalt des Feldes "hobby" an ein Array:

PHP:
$rs = mysql_query("SELECT hobby FROM profil WHERE user = 1 LIMIT 1");
// Hobbys sind mit "-" getrennt gespeichert
$hobby = explode("-", mysql_result($rs, 0, "hobby"));

Um die Kästchen zu markieren schreibst du folgenden Code:

PHP:
 <input type="checkbox" name="hobby[]" value="Sport" <?php if (in_array("Sport", $hobby)) echo "checked"; ?>/> 1
  <input type="checkbox" name="hobby[]" value="Kino" <?php if (in_array("Kino", $hobby)) echo "checked"; ?>/> 2
  <input type="checkbox" name="hobby[]" value="Unterhaltung" <?php if (in_array("Unterhaltung", $hobby)) echo "checked"; ?>/> 3
 
Zurück