根据数据库中的值选中复选框


Check Checkbox depending on value in database

我有一个从数据库中获取"分支"的代码。每个公司可以有多个"分支机构"。

唯一的问题是,这是行不通的。你们能找出问题所在吗?

$getbranches = "SELECT * FROM branches ORDER BY naam ASC";
$querygetbranches = mysql_query($getbranches);
while($rijbranche = mysql_fetch_assoc($querygetbranches))
{
    echo "<tr>";
    echo "<td width='400'>";
    echo $rijbranche['naam'];
    echo "</td>";
    echo "<td>";
    $get2 = "SELECT * FROM bedrijf_branche WHERE bedrijf_id = '$id'";
    $query2 = mysql_query($get2);
    while ($rij20 = mysql_fetch_assoc($query2))
    {
        $branche_id = $rij20['branche_id'];
    }
    if($branche_id == $rijbranche['id_branche']){
        ?>
        <input type="checkbox" name="branche[]" value="<?php echo $rijbranche['id_branche']; ?>" CHECKED></input>
        <?php
    }
    else
    {
        ?>
        <input type="checkbox" name="branche[]" value="<?php echo $rijbranche['id_branche']; ?>"></input>
        <?php
    }
    echo "</td>";
}

尝试以下代码

<?php
$id = $_GET['id'];
// Output BRANCHES
$getbranches = "SELECT * FROM branches ORDER BY naam ASC";
$querygetbranches = mysql_query($getbranches);
while ($rijbranche = mysql_fetch_array($querygetbranches)) {
  echo '  <tr>' . "'n";
  echo '    <td width="400">' . $rijbranche['naam'] . '</td>' . "'n";
  // Output CHECKBOX
  $get2 = mysql_query("SELECT * FROM bedrijf_branche WHERE bedrijf_id = '" . $id . "' AND branche_id = '" . $rijbranche['id_branche'] . "'");
  $rij20 = mysql_fetch_array($get2);
  $branche_id = $rij20['branche_id'];
  if ($branche_id == $rijbranche['id_branche']) {
    $checkbox = '<input type="checkbox" name="branche[]" value="' . $rijbranche['id_branche'] . '" checked="checked" />';
  }
  else {
    $checkbox = '<input type="checkbox" name="branche[]" value="' . $rijbranche['id_branche'] . '" />';
  }
  echo '    <td>' . $checkbox . '</td>' . "'n";
  echo '  </tr>' . "'n";
}
?>

发现我在上面的代码中修复了几个错误。

  1. 您错误地关闭了<input>字段
  2. 第二个while()循环是不必要的,因为应该只返回一行
  3. 您必须将branche_id添加到您的第二个mysql_query中
  4. 当您可以添加echo时,不要为每一行HTML关闭并重新打开<?php ?>标记

您的HTML语法错误。关闭输入标签的方式和检查复选框的方式是错误的试试这个

    <input type="checkbox" name="branche[]" value="<?php echo $rijbranche['id_branche']; ?>" checked="checked" />