将数据库中的数据内爆到选中的回显复选框

implode a data from database to echo checkbox as checked

我有一个数据数组,在数据库中用逗号分隔。

现在,我想要做的是从列 purpose 内爆字符串。

并在我的表单中创建该复选框列表 echo checked; 如果该列表在数据库中。

希望大家能帮帮我。谢谢!

如果您必须这样做,那么:

$checkedPurposes = preg_split('/\s*,\s*/', $purposeColumnFromDatabase);
// then for each checkbox
if (in_array($purposeName, $checkedPurposes)) {
    // echo checked
}

正则表达式确保有关逗号周围空格数的拼写错误无关紧要。

正如其他用户在评论中所说的那样,这是糟糕的数据库设计。如果您可以更改架构以将用途移至它们自己的 table,您可能应该这么做。

这是一个示例(虽然这不是设计代码的正确方法)。

$purposesFull=array('a','b','c','d','e');
$purposesFromDB='a,b,d';
$purposesFromDBArray=explode(',',$purposesFromDB);
foreach($purposesFull as $item){
    $checked = in_array($item,$purposesFromDBArray) ? ' checked' : '';
    echo '<input type="checkbox" name="purs[]"'.$checked.'>'.$item;
    echo '<br/>';
}