(RESOLVIDO)Cópia de dados pai/filho agindo estranho

Prezados, já passei da fase iniciante apanhando para copiar dados do form pai/filho para outro form pai/filho de outras tabelas…
e resolvi isso…tanto que devo tem umas 10 telas que fazem isso perfeitamente…jogando de um setor para outro…

Mas hoje estou querendo copiar todos os dados do form pai/filho RM/DETALHERM para RM/DETALHERM
tipo… os engenheiros fazem um pedido de material com 50 itens para obra X, daí ele precisa fazer o mesmo para obra Y, logo é só copiar.
então estou copiado tudo do registro 10 para o ultimo insert… mas tá estranho…faz o insert pai certinho, pego o ultimo ID da tabela insedira…mas o lookup do dados filho retornam “0”, como se não tivesse nada na tabela origem… mas tem…
o select pelo builder retorna 50 produtos conforme na tela…mas no codigo do botão nao esta retornando nada.

testei com “echo” e o count tá zero.
devo estar cansado…tem algo que deixei passar ?

[code]/**

  • ESTA INSERINDO DADOS NA TABELA PAI
    */
    $hoje = Date(‘Ymd G:i:s’);
    // SQL statement parameters
    $insert_table = ‘tblRM’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘login’ => “’[usr_login]’”,
    ‘datasolicitacao’ => “’$hoje’”,
    ‘idstatus’ => “‘2’”,
    ‘obs’ => “’{obs}’”,
    );

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

sc_exec_sql($insert_sql);

sc_lookup(ds,"SELECT MAX(idrm) as ultimoID FROM tblRM ");
echo $idrm = {ds[0][0]};
//ESTA INSERINDO OS DADOS DO PEDIDO

sc_lookup(deta,“SELECT cod_compos_compon, id_descricao_componente, quantidade, qdtliberada, dtqcomprar, codunidade
FROM
tblDetalheRM
WHERE
idrm = ‘{idrm}’”);

echo $conta = count({deta});
for($x=0;$x<$conta;$x++)
{

		if({deta}===false)
		{
				echo "Erro de acesso. Mensagem=" .{deta};
		}elseif(empty({deta}))
		{
				echo "Comando Select não retornou dados";
		}else
		{	

$produto = {deta[$x][0]};
$descricao = {deta[$x][1]};
$quantidade = {deta[$x][2]};
$almox = {deta[$x][3]};
$comprar = {deta[$x][4]};
$unidade = {deta[$x][5]};
/**

  • Insert a record on another table
    */
    // SQL statement parameters
    $insert_table = ‘tblDetalheRM’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘cod_compos_compon’ => “’$produto’”,
    ‘id_descricao_componente’ => “’$descricao’”,
    ‘quantidade’ => “’$quantidade’”,
    ‘qdtliberada’ => “’$almox’”,
    ‘dtqcomprar’ => “’$comprar’”,
    ‘idrm’ => “’$idrm’”,
    ‘codunidade’ => “’$unidade’”,
    );
    }
    // Insert record
    $insert_sql = ‘INSERT INTO ’ . $insert_table
    . ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
    . ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;

sc_exec_sql($insert_sql);

}[/code]

Resolvi… programação é coisa do “capeta”… conflito de variáveis…
é que na outra solução eu mandava de uma tabela para outra… nesta estou mandando para a mesma tabela…
daí troquei a ordem de algumas linhas… veja em destaque


/**

  • ESTA INSERINDO DADOS NA TABELA PAI
    */
    $hoje = Date(‘Ymd G:i:s’);
    // SQL statement parameters
    $insert_table = ‘tblRM’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘login’ => “’[usr_login]’”,
    ‘datasolicitacao’ => “’$hoje’”,
    ‘idstatus’ => “‘2’”,
    ‘obs’ => “’{obs}’”,
    );

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

sc_exec_sql($insert_sql);

[b]sc_lookup(deta,“SELECT cod_compos_compon, id_descricao_componente, quantidade, qdtliberada, dtqcomprar, codunidade
FROM
tblDetalheRM
WHERE
idrm = ‘{idrm}’”);

sc_lookup(ds,"SELECT MAX(idrm) as ultimoID FROM tblRM "); // quando eu pegava esse ID antem do lookup, o resultado ia para a variavel {idrm}
echo $idrm = {ds[0][0]}; //logo retornava o ID novo que nao tinha nada ainda…
//ESTA INSERINDO OS DADOS DO PEDIDO[/b]

echo $conta = count({deta});
for($x=0;$x<$conta;$x++)
{

		if({deta}===false)
		{
				echo "Erro de acesso. Mensagem=" .{deta};
		}elseif(empty({deta}))
		{
				echo "Comando Select não retornou dados";
		}else
		{	

$produto = {deta[$x][0]};
$descricao = {deta[$x][1]};
$quantidade = {deta[$x][2]};
$almox = {deta[$x][3]};
$comprar = {deta[$x][4]};
$unidade = {deta[$x][5]};
/**

  • Insert a record on another table
    */
    // SQL statement parameters
    $insert_table = ‘tblDetalheRM’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘cod_compos_compon’ => “’$produto’”,
    ‘id_descricao_componente’ => “’$descricao’”,
    ‘quantidade’ => “’$quantidade’”,
    ‘qdtliberada’ => “’$almox’”,
    ‘dtqcomprar’ => “’$comprar’”,
    ‘idrm’ => “’$idrm’”,
    ‘codunidade’ => “’$unidade’”,
    );
    }
    // Insert record
    $insert_sql = ‘INSERT INTO ’ . $insert_table
    . ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
    . ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;

sc_exec_sql($insert_sql);

}