Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用枚举和自定义列更新数据库中的多个复选框_Php_Mysql_Checkbox_Pdo_Enums - Fatal编程技术网

Php 使用枚举和自定义列更新数据库中的多个复选框

Php 使用枚举和自定义列更新数据库中的多个复选框,php,mysql,checkbox,pdo,enums,Php,Mysql,Checkbox,Pdo,Enums,我有一个表,其中自定义列由管理员创建,每个列都有hiis自己的枚举,带有“0”、“1”。在这里,您可以选择列是真是假 现在我想做一个选项,管理员可以通过复选框来更新这个true或false 选中复选框 <div class="col-sm-9"> <?php if(isset($produci[0])) { foreach($produci as $key => $avlue) { ?> <div class="row-

我有一个表,其中自定义列由管理员创建,每个列都有hiis自己的枚举,带有“0”、“1”。在这里,您可以选择列是真是假

现在我想做一个选项,管理员可以通过复选框来更新这个true或false

选中复选框

<div class="col-sm-9">
    <?php
    if(isset($produci[0])) {
    foreach($produci as $key => $avlue) {
    ?>
    <div class="row-fluid">
       <label>
           <input name="clickedproduct[]" type="checkbox" value="<?php echo $avlue['name']; ?>" <?php echo (($_SERVER['REQUEST_METHOD'] == 'POST') ? ((isset($_POST[$avlue['name']])) ? ' value="'.$avlue[$avlue['name']].'" checked' : ' value="'.$avlue[$avlue['name']].'"') : (($avlue[$avlue['name']] == '1') ? ' value="'.$avlue[$avlue['name']].'"checked' : ' value="'.$avlue[$avlue['name']].'"')); ?>>
           <?php echo $avlue['name']; ?>
      </label>                                    
    </div> 
    <?php } }else{
                  echo '<font color="red">Er zijn nog geen producten aangemaakt.</font>';
                 } ?>                           
</div>

有人提供解决方案吗?

您应该通过下面的方式切换枚举列

UPDATE table_name SET column_name = IF(column_name=1, 0, 1);
在代码中

$sql = "UPDATE products_access SET  `{$column}` = IF( `{$column}`=1, 0, 1) WHERE products_access.id = :id";
$product_access = $dbh->prepare($sql);
$product_accessvar = trim($user['id']);
$product_access->bindParam(':id', $product_accessvar, PDO::PARAM_INT);
//$product_access->bindParam(':enum', $clickedproduct, PDO::PARAM_INT); 
$product_access->execute();

我已经编辑了你的代码,但是我现在有一个问题,当列枚举为1时,列枚举变为0,但是,当它为1时,他将删除该枚举,并且不给我任何内容。有一个问题,如果复选框是否选中,则需要选中该复选框,因为现在选中该复选框时,他将检查它是否为真,并在它相等时进行更改。
$sql = "UPDATE products_access SET  `{$column}` = IF( `{$column}`=1, 0, 1) WHERE products_access.id = :id";
$product_access = $dbh->prepare($sql);
$product_accessvar = trim($user['id']);
$product_access->bindParam(':id', $product_accessvar, PDO::PARAM_INT);
//$product_access->bindParam(':enum', $clickedproduct, PDO::PARAM_INT); 
$product_access->execute();