(RESOLVIDO)Copiar dados da tabela mestre e da tabela filho

Prezados, criei um botão para copiar os dados de um mapa de coleta para uma ordem de compra.
Cenário - tenho os dados em uma tabela Pai que tem uma talela filho(mestre-detalhe)
preciso copiar (ao acionar o botao) os dados para outras 2 talebas -Ordem de comprar que tem um detalhe.

Estou conseguindo copiar apenas os dados da tabela Pai. não estou sabendo compiar as duas.

Alguem pode me dar uma Luz ?

Olá Jean…

Para vc fazer uma cópia, dos itens filho vc vai ter que fazer um while percorrendo todos os registro, e dando um insert na segunda tabela…

vc pode usar a estrutura pré estabelecida(Insert code) para facilitar…

Não esquece de fazer os tratamento, para não ter duplicidade, caso o usuário copie mais de uma x…

Ex.

/**

  • Selecting a field from another table using the recordset
    */

$id_tabela_pai = {id_tabela_pai};

// Check for record
$check_sql = ‘SELECT campo1, campo2’
. ’ FROM tabela_filho’
. " WHERE id_tabela_pai = ‘" . $id_tabela_pai . "’";

sc_select(rs, $check_sql);

//initialize the field
{field_total} = 0;
if (false == {rs}) // Error while accessing database
{
sc_error_message(‘Error while accessing database.’);
}
else
{
while(!$rs->EOF)
{
$campo1 = $rs->fields[0];
$campo2 = $rs->fields[0];

/**

  • Insert a record on another table
    */

// SQL statement parameters
$insert_table = ‘tabela_copia_filho’; // Table name
$insert_fields = array( // Field list, add as many as needed
‘campo1’ => “’$campo1’”,
‘campo2’ => “’$campo2’”,
);

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

sc_exec_sql($insert_sql);

	$rs->MoveNext();
}
$rs->Close();

}

Ok…verei se consigo implementar.
Posto o resultado em seguida.

Esqueci de fechar esse tópico…

[code]/**

  • ESTA INSERINDO DADOS NA TABELA PAI
    */
    $hoje = Date(‘Ymd G:i:s’);
    $numero = strtoupper(substr(md5(microtime()),0,10));
    // SQL statement parameters
    $insert_table = ‘tblOrdemdeCompra’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘numeroOdc’ => “’$numero’”,
    ‘idobra’ => “’{idobra}’”,
    ‘frete’ => “‘0’”,
    ‘desconto’ => “‘0’”,
    ‘idstatus’ => “‘9’”,
    ‘comprador’ => “’[usr_login]’”,
    ‘datacompra’ => “’$hoje’”,
    ‘idrm’ => “’{idrm}’”,
    ‘baixa’ => “‘1’”,
    );

// 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(idordem) as ultimoID FROM tblOrdemdeCompra ");

//ESTA ATRIBUINDO O NUMERO SEQUENCIAL DA ODC
$idordem = {ds[0][0]};
SeqAPOC($idordem);

//ESTA INSERINDO OS DADOS DO PEDIDO

sc_lookup(det,“SELECT
cod_compos_compon,
id_descricao_componente,
dtqcomprar,
codunidade
FROM
dbo.tblDetalheRM
WHERE
idrm = ‘{idrm}’ AND
dtqcomprar <> ‘0’”);

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

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

$produto = {det[$x][0]};
$descricao = {det[$x][1]};
$quantidade = {det[$x][2]};
$unidade = {det[$x][3]};
/**

  • Insert a record on another table
    */
    // SQL statement parameters
    $insert_table = ‘tblDetalheODC’; // Table name
    $insert_fields = array( // Field list, add as many as needed
    ‘idordem’ => “’$idordem’”,
    ‘cod_compos_compon’ => “’$produto’”,
    ‘id_descricao_componente’ => “’$descricao’”,
    ‘dtqcomprar’ => “’$quantidade’”,
    ‘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);
}

//atualizo o status da rm para atendido

/**

  • Update a record on another table
    */

// SQL statement parameters
$update_table = ‘tblRM’; // Table name
$update_where = “idrm = ‘{idrm}’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“comprador = ‘[usr_login]’”,
“idstatus = ‘12’”,
“datacompra = ‘$hoje’”,
);

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

//cria avaliacao iso

/**

  • Insert a record on another table
    */

// SQL statement parameters
$insert_table = ‘avalia_iso_fornecedor’; // Table name
$insert_fields = array( // Field list, add as many as needed
‘idordem’ => “’$idordem’”,
‘status’ => “‘1’”,
);

// 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_redir(Pesquisa_OrdemdeCompra.php,"","_self");[/code]

Resolvido