Loop ao gerar parcelamento

Olá pessoal, estou com um probleminha. O codigo abaixo esta fazendo o lancamento em outra tabela de acordo com a quantidade de parcelas, porém esta em loop, não consegui descobrir o erro. Alguem pode me ajudar?
Segue o codigo:
sc_lookup(rs,"SELECT
ID_CONTA, TIPO_DESPESA, CLIENTE, FORNECEDOR, TIPO_LACTO, tp_forma_pgto,
DATA_LACTO,DATA_VECTO,VALOR,parcelas,DESCRICAO,GEROU_PARCELAS
FROM
multiplos_lactos
WHERE
(ID_CONTA = ‘[id_conta]’)
");

//$id = {rs[0][0]};
$tpdespesa = {rs[0][1]};
$cliente = {rs[0][2]};
$fornecedor = {rs[0][3]};
$tplacto = {rs[0][4]};
$formapagto = {rs[0][5]};
$dtlancamento = {rs[0][6]};
$dtvencimento = {rs[0][7]};
$valortotal = {rs[0][8]};
$qtdeparcelas = {rs[0][9]};
$descricao = {rs[0][10]};
$gerou = {rs[0][11]};

$datalanca = Date(‘dmhis’);
$numero = $qtdeparcelas;

$x = 1;
while ($x <=$numero)
{
$venc = sc_date($dtvencimento,“aaaa-mm-dd”,"+",0,$x-1,0); //INCREMENTA O MES
$valorparcela = $valortotal/$numero;
$num_parcela = $x;

$insert_table = ‘pagar’;
$insert_fields = array(
‘IDENTIFICADOR’ => “’$datalanca’”,
‘pg_forneced’ => “’$fornecedor’”,
‘pg_tp_servico’ => “’$tplacto’”,
‘pg_dt_lcto’ => “’$dtlancamento’”,
‘pg_descricao’ => “’$descricao - $num_parcela/$numero’”,
‘pg_forpgto’ => “’$formapagto’”,
‘pg_parcela’ => “’$num_parcela’”,
‘pg_vecto’ => “’$venc’”,
‘pg_valor’ => “’$valorparcela’”,
‘pg_pago’ => “‘N’”
);

// Insert record
$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;
sc_exec_sql($insert_sql);

$x++;
sleep(1);
}

/**

  • Update a record on another table
    */

// SQL statement parameters
$update_table = ‘multiplos_lactos’; // Table name
$update_where = “id_conta = ‘[id_conta]’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“GEROU_PARCELAS = ‘S’”,
);

// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);

/**

  • ESSA FUNCAO AQUI VAI EXCLUIR O REGISTRO DEPOIS DE PROCESSAR!! POSSO USAR DEPOIS!!!
  • Delete a record on another table

// SQL statement parameters
$delete_table = ‘ctaspagar_mult’; // Table name
$delete_where = “id_conta = ‘[id_conta]’”;// Where clause

// Delete record
$delete_sql = 'DELETE FROM ’ . $delete_table . ’ WHERE ’ . $delete_where;
sc_exec_sql($delete_sql);
*/

// Redirecionar para o GRID onde lista lancamentos multiplos
sc_redir(gerar_lancamento_multiplo,’_self’);

Grato

Paulo José
Click Informática.
Garanhuns - PE

Olá,

O $x++; está fora do loop.

Não entendi a questão do problema a ser solucionado.
Ocorre algum erro ?

Pois o loop não é essencial para o propósito de inserção na tabela pagar de acordo com o número de parcelas ?
O $x++ está dentro do loop while:

$x = 1;
while ($x <=$numero)
{
$venc = sc_date($dtvencimento,“aaaa-mm-dd”,"+",0,$x-1,0); //INCREMENTA O MES
$valorparcela = $valortotal/$numero;
$num_parcela = $x;

$insert_table = ‘pagar’;
$insert_fields = array(
‘IDENTIFICADOR’ => “’$datalanca’”,
‘pg_forneced’ => “’$fornecedor’”,
‘pg_tp_servico’ => “’$tplacto’”,
‘pg_dt_lcto’ => “’$dtlancamento’”,
‘pg_descricao’ => “’$descricao - $num_parcela/$numero’”,
‘pg_forpgto’ => “’$formapagto’”,
‘pg_parcela’ => “’$num_parcela’”,
‘pg_vecto’ => “’$venc’”,
‘pg_valor’ => “’$valorparcela’”,
‘pg_pago’ => “‘N’”
);

// Insert record
$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;
sc_exec_sql($insert_sql);

$x++;
sleep(1);
}

Não vi sc_commit_trans aí.
Tem que ser antes do redir.