PHP codeigniter

问题描述

我正在使用Codeigniter。我的表单有多行,每行具有相同的字段名称。您能否帮助我如何通过循环将其保存在数据库中?我遇到了错误

错误号:1048列“ sn_unit”不能为空

请参见以下代码。预先感谢您的帮助。

这是视图

<?PHP 
for ($i = 1; $i <= $number_to_check; $i++) {
?>
<hr>
<div class="row">
   <div class="col-xl-4">
       <div class="mb-3">
          <label class="form-label"><strong><?PHP echo $i;?></strong></label>
          <input type="text" class="form-control" name="sn_unit[]" placeholder="Unit Serial Number" required>
       </div>
    </div>
</div>
<?PHP 
}
?>

这是控制器

for ($i = 1; $i <= count($this->input->post('sn_unit')); $i++) {

   $sn_unit = $this->input->post('sn_unit[$i]');
              
   $chk = $this->auth->saveItemReport();
}

解决方法

您可以简单地使用foreach遍历所有值。

foreach($this->input->post('sn_unit') as $key => $value)
{ 
   $sn_unit = $value;
   $chk = $this->auth->saveItemReport(); 
}

如果您仍然喜欢使用for循环;永远记住数组从0索引开始,所以:

$units = $this->input->post('sn_unit');
for ($i = 0; $i < count($units); $i++) {
   $sn_unit = $units[$i];   
   $chk = $this->auth->saveItemReport();
}