我尝试使用foreach
这是我从表格中得到的内容
Array
(
[mulai] => 2016-08-28
[akhir] => 2016-08-31
[keterangan] => remarks
[nip] => Array
(
[0] => 1004384
[1] => 1602744
[2] => 1501039
)
)
然后这是我的保存查询。
$jumlahrange = $this->db->query("SELECT DATEDIFF(day,'".$mulai."','".$akhir."') AS diff")->row();
$totaldata = count($nip);
$skrg = $this->db->query("SELECT GETDATE() tgl")->row();
for($x = 0;$x<=$totaldata;$x++)
{
for($y=0;$y<$jumlahrange->diff;$y++){
$this->db->query("INSERT INTO attendance
(Nip,AttendanceDate,InTime,OutTime,AttendanceCode,RosterCode,LocationCode,Remarks,CreatedDate,CreatedBy,ModifiedDate,ModifiedBy)
values(
'".$nip[$x]."',DATEADD(DAY,".$y.",'".$mulai."'),'','','P3','','','".$keterangan."','".$skrg->tgl."','$niplogin','','')
");
}
}
我的save
没问题,但我的表中有空字段。在行10,11,12
中。那一行应该不存在吧?
我使用的是SqlServer 2008和Codeigniter。我知道我可以使用insert_batch
,但我想用这种方式。
答案 0 :(得分:1)
在您的第for($x = 0;$x<=$totaldata;$x++)
行中我非常确定您要写<
而不是<=
答案 1 :(得分:1)
要克服这些问题,您可以使用foreach循环
foreach($resourcedata as $value){
//your code goes here and you will get all array elements sequentially in **$value** variable
}
答案 2 :(得分:0)
这一个就在你的指尖。 $ nip [$ x]为空。错误日志或转储并在第一个循环$ nip [$ x]上死掉,看看它返回什么。如果它实际上不是null,那么它可能是数据类型问题(string vs int)。