Php 有没有办法删除数据库中的逗号?代码点火器

Php 有没有办法删除数据库中的逗号?代码点火器,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,如何从数据库中删除逗号 我需要根据数据删除它们。 所以我有这些数据 产品1,产品2,,,,,-我需要删除每个逗号 所以,我需要删除每个逗号。这是我的看法 <?php echo form_open('subjects/remove_core'); ?> <?php $core_subjs = explode(',', $subjects['core_subjects']); ?> <?php foreach($core_subjs as $key =&g

如何从数据库中删除逗号

我需要根据数据删除它们。 所以我有这些数据

产品1,产品2,,,,,
-我需要删除每个逗号

所以,我需要删除每个逗号。这是我的看法

<?php echo form_open('subjects/remove_core'); ?>

 <?php  $core_subjs = explode(',', $subjects['core_subjects']); ?>
    <?php foreach($core_subjs as $key => $subject): ?>

        <input type="hidden" name="remove_core" class="form-control" value="<?php echo $subjects['core_subjects'].'' ?>" /><br>

        <input type="text" name="coresubjs[]" class="form-control" value="<?php echo $subject ?>" /><br>
        <button type="submit" class="btn btn-success btn-sm">Save</button>

  <?php endforeach ?>
</form>
我的模型-所以在这里我不确定我是否做得对,因为结果是不正确的

public function remove_core(){
        $data = array(
            'core_subjects' => " "
        );

        $this->db->where('id', $this->input->post('coresubjID'));
        return $this->db->update('subjects', $data);
}
我如何内爆数据

public function update_core(){
        $data = array(
            'core_subjects' => implode(',',$this->input->post('coresubjs[]'))
        );

        $this->db->where('id', $this->input->post('coresubjID'));
        return $this->db->update('subjects', $data);
}

update_核心功能中
,您需要
trim
附加的
,'
。您可以按以下方式执行此操作-

public function update_core(){
        $data = array(
            'core_subjects' => rtrim(implode(',', $this->input->post('coresubjs[]')), ','); // remove the extra ',' to the right
        );

        $this->db->where('id', $this->input->post('coresubjID'));
        return $this->db->update('subjects', $data);
}

另外,请记住,您不必在每次更新时删除数据。更新时,它将自动覆盖以前的值。因此,您的
remove_core
方法是多余的,应该删除要删除进入数据库的多余逗号,您可以根据您的偏好使用
array_filter
trim
preg_replace

理论值为
$this->input->post('coresubs[])
of

数组(
'',
'',
'0',
“A”,
“B”,
'',
“D”,
'',
'',
);
仅使用
内爆(',')
将导致

,,0,A,B,,D,,
免责声明 但是请记住,post值中的任何逗号都不会被正确解释,应该使用其他方法进行转义。例如:
1000
将分解为
数组(“1”、“000”)
。因此,我建议使用
json_encode()
json_decode()
serialize()
unserialize()
,而不是
内爆(',')
分解(',')

例如:


内爆
数组参数中删除“空”值(
0,”、false、null
)。 这将对任何空的输入值起作用,包括数组的中间部分

内爆(“,”,数组_过滤器($this->input->post('coresubs[]))
结果
请注意,删除了所有无关的逗号和
0

要避免使用诸如
0、false等“空”值的问题,可以使用自定义回调

内爆(',',数组过滤器($this->input->post('coresubs[]),函数($value){
返回null!=$value&&''!==$value;
}))
结果
请注意,已删除所有无关的逗号


仅从
内爆
值中删除前导和尾随逗号

trim(内爆(“,”,$this->input->post('coresubs[]),“,”)
结果
注意前导和尾逗号被删除,但中间逗留的逗号仍然存在。


类似于<代码>修饰符< /> >,从“代码”中删除引导和尾随逗号:“MyDoo< <代码>值”,在中间用一个逗号替换任何2个逗号或更多逗号。

preg_replace(['/,{2,}/','/^,+/','/,+$/'],[','','','],内爆(',',',$this->input->post('coresubs[]'))
模式说明:

  • ,{2,}
    任意两个或多个逗号
  • ^,+
    以一个或多个逗号开头
  • ,+$
    以一个或多个逗号结尾
结果
请注意,所有无关的逗号都已删除


你在内爆什么?您是否正在内爆并插入数据库?内爆数据的来源是什么?@Hardood-在我的数据库中,数据是内爆的。我需要的是从数据库中删除逗号。我要的是query@Harood-检查我的升级问题,请忽略内爆部分内爆数据的来源是什么?我想帮助防止在php使用
rtrim($subjects['core_subjects'],',')中再次在数据库中插入这样的数据
或mysql使用
TRIM(training),”FROM core_subject)作为core_subject
,这将删除所有无关的尾随逗号。您好,我已经尝试了您的代码,但数据和逗号仍然没有被删除。谢谢你的回复,先生,你能打印($data['core\u subjects')
并共享输出吗?我试过这个--
rtrim(内爆(''.$this->input->post('coressubjects[]),',')但问题是所有逗号都已删除是否有可能在每个文本框中删除1个逗号?非常感谢您,您的代码工作正常,但问题是当我单击submit按钮时,所有逗号都被删除了
,,0,A,B,,D,,
A,B,D
0,A,B,D
0,A,B,,D
0,A,B,D