INSERT com sc_exec_sql

Tenho uma variável global de entrada que é um array que contém as inscrições marcadas através de checkbox na outra aplicação.

Com posse desses dados quero distribuir essas inscrições a um determinado funcionário e registrar a inscrição, matricula, funcionario e data atual. Eu consigo fazer o insert, mas sempre é incluído um último registro sem necessidade e não consigo entender o porquê disso.

Segue o código e o resultado no BD:

$total = count([total_chked]);

sc_lookup(dataset,"select matricula from tbl_funcionario where funcionario = '{funcionario}'");
{matricula} = {dataset[0][0]};

$data = date('Y-m-d');	

for($x=0;$x<$total;$x++){	
	
$inscricao = (string) [total_chked][$x];

sc_exec_sql("INSERT INTO tbl_distribuicao_teste (inscricao, matricula, funcionario, distribuicao) VALUES ('$inscricao', '{matricula}', '{funcionario}', '$data')");

}

Resultado:

inscricao matricula funcionario distribuicao
40967620 23124 josé maria 19/09/2017
12205001 23124 josé maria 19/09/2017
37997351 23124 josé maria 19/09/2017
23124 josé maria (NULL)

Tenta com este código:

$sql="
SELECT
	matricula
FROM
    tbl_funcionario
WHERE
    funcionario = '{funcionario}'
";

sc_lookup(chk_inscr,$sql);

{matricula} = {chk_inscr[0][0]};

$_Hoje = date('Y-m-d');	

for ($x=0;$x<count([total_chked])-1;$x++) {	
	
	$_Inscricao = (string) [total_chked][$x];
	
	$sql="
    INSERT INTO
		tbl_distribuicao_teste
			(inscricao,
			matricula,
			funcionario,
			distribuicao)
	VALUES
			('$_Inscricao',
			'{matricula}',
			'{funcionario}',
			'$_Hoje')	
	";

	sc_exec_sql($sql);
	
} // Fim: for ($x=0;$x<count([total_chked])-1;$x++)

Cara, depois que dei um sc_redir depois do for, funcionou normalmente. Não entendi, já havia tentado com while também e dava o mesmo erro.