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

Php 根据选中的复选框更新mysql表,php,mysql,sql,checkbox,Php,Mysql,Sql,Checkbox,我有一个表,它有一个名为extension\u list的列,该列中有逗号分隔的值 200201202203204etc 如果我有一个从数据库中选择这些的循环: $stmt = $pbx01_pdoconn->prepare("SELECT * from client where parent_client_id = :parent_client_id "); $stmt->execute(array(':parent_client_id' => $customerid));

我有一个表,它有一个名为
extension\u list
的列,该列中有逗号分隔的值

200201202203204
etc

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

$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>';
    }
}
$stmt=$pbx01\u pdoconn->prepare(“从客户端选择*,其中父客户端\u id=:父客户端\u id”);
$stmt->execute(数组(':parent\u client\u id'=>$customerid));
$records=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result记录){
$stmt=$pbx01\u pdoconn->prepare(“从扩展中选择*,其中client\u id=:client\u id”);
$stmt->execute(数组(':client_id'=>$result[“id”]);
$extension=$stmt->fetch();
如果($extension[“type”]=“term”){
回声'
“.$result[“name”]”.(“.$extension[“number”]”.)
';
}
}
如何在每个值旁边显示复选框,如果$extension[“number”]值位于extension_list列中,请勾选复选框


此外,当勾选复选框并按下提交按钮时,它将更新扩展列表列,并将该值添加到逗号分隔列表中。您应该规范化您的表。

然后您可以有如下HTML输入复选框:

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

请注意,如果需要使用查询操作逗号分隔的值,则在数据库中存储逗号分隔的值几乎总是一个坏主意。一个适当的规范化结构会更好地工作。在一列中使用逗号分隔的列表通常是糟糕的设计。最好使用关系表来存储这些信息。因此,您可能会有表
客户机
扩展名
、和
客户机扩展名
,其中后者将有列
客户机id
扩展名id
。我如何运行和更新查询以删除数字或在逗号分隔的列表中添加数字?“您应该规范化您的表”。有一个子表只保存单个扩展,但有一个外键返回到父表,就是一个例子(1:N)
<input name="extenstionbox[]" id="extenstionbox" type="checkbox" value="<? echo $extension['id']; ?>" <?php if(in_array($extension['id'], $extensions)) echo 'checked="checked"';?>>