根据选中的复选框更新mysql表

时间:2014-03-19 18:03:02

标签: php mysql sql checkbox

我有一个名为extension_list的列的表,其中包含逗号分隔值

200,201,202,203,204

如果我有一个从数据库中选择这些的循环:

$stmt = $pbx01_pdoconn->prepare("SELECT * from client where parent_client_id = :parent_client_id ");
$stmt->execute(array(':parent_client_id' => $customerid));
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($records as $result) {
    $stmt = $pbx01_pdoconn->prepare("SELECT * from extension where client_id = :client_id ");
    $stmt->execute(array(':client_id' => $result["id"]));
    $extension = $stmt->fetch();
    if($extension["type"] == 'term') {
        echo '<tr>
    <td>'.$result["name"].' ('.$extension["number"].')</a></td>
    </tr>';
    }
}

如何在每个值旁边显示复选框,如果$ extension [&#34; number&#34;]值在extension_list列中,则勾选复选框。

此外,勾选复选框并按下提交按钮时,它将更新extension_list列并将该值添加到逗号分隔列表中

2 个答案:

答案 0 :(得分:0)

您应该规范化表格。

然后您可以使用HTML输入复选框,例如:

<input type="checkbox" name="extensions[]" value="<?php echo $extension['id'] ?>">

然后,在您的脚本中,您可以处理它们:

$extensions = isset($_POST['extensions'])  && is_array($_POST['extensions']) ? $_POST['extensions'] : array();
foreach($extensions as $extension) {
  // use $extension here
}

这有助于指明你正确的方向。

答案 1 :(得分:0)

<input name="extenstionbox[]" id="extenstionbox" type="checkbox" value="<? echo $extension['id']; ?>" <?php if(in_array($extension['id'], $extensions)) echo 'checked="checked"';?>>