[RESOLVIDO] - Inserir Multiplus registro de uma Consulta numa Tabela

Boa noite,

Sou iniciante em programação… Estou precisando que seja feito uma consulta na tabela servicosvinculados com dois filtro pelos campos idempresa e padrao.

Isso foi feito com facilidade, sendo que a consulta retorna 12 registro, veja o código abaixo:

[code]$status=0;
$ativo=“Y”;
$date=date(‘Y-m-d’, strtotime(’-1 months’, strtotime(date(‘Y-m-d’))));
$dateatual=date(‘Y-m-d’);
$usuario=[usr_login];

//selecionando os serviços vinculados padrão da tabela servicosvinculados com filtro na empresa
sc_lookup(rs, "
SELECT
idempresa,
idservico,
qtde,
vrl_padrao,
obrigacaofiscal,
tipo,
deb_cred,
vrl_padrao
FROM
servicosvinculados
WHERE
padrao=“Y” and idempresa = [usr_idempresa]");

{idempresa} = {rs[0][0]};
{idservico} = {rs[0][1]};
{qtde} = {rs[0][2]};
{vrl_padrao} = {rs[0][3]};
{obrigacaofiscal} = {rs[0][4]};
{tipo} = {rs[0][5]};
{deb_cred} = {rs[0][6]};
{vrl_padrao} = {rs[0][7]};

[/code]

Agora preciso inserir todos estes registro na tabela servicosefetuados, mas o código abaixo insere apenas uma registro.

[code]
// Inserir todos os dados da consulta anterior na tabela serviços efetuados
$sql = ("INSERT INTO servicosefetuados (idempresa, periodoapuracao, idservico, qtde, obrigacaofiscal, tipo, deb_cred, usregistro, dtregistro, vrl, ativo) VALUES ({idempresa}, ‘$date’, {idservico},’{qtde}’, ‘{obrigacaofiscal}’, ‘{tipo}’,’{deb_cred}’, ‘$usuario’, ‘$dateatual’, {vrl_padrao}, ‘$ativo’) ");

sc_exec_sql($sql);[/code]

Alguém poderia ajudar, para que o código insira todos os registro da primeira consulta e não somente um registro?.

Desde já agradeço.

Gilson

Bom dia!! Utilize o botão run:

http://www.scriptcase.com.br/tutoriais/consulta-com-botao-run/

Obrigado Thyago Brasil, conseguir resolver com o botõa RUN.

Ola

você poderia usar o mesmo código.

Só que em vez da macro SC_LOOKUP que lê somente um registro usar a SC_SELECT e “varrer” todos os registros que estiverem dentro do where.

tenho um exemplo aqui de um botão PHP que insere registros num form no banco de dados
onde pega o ultimo id do registro e conta esse produto até o id onde queres parar
EX:

$error_test = {MULTIPLICADOR} <= {N}; // multiplicador onde quer que pare é N id
$error_message = ‘NUMERO FINAL PRECISA SER MAIOR QUE NUMERO INICIAL’; // Error message

// Redirection
if ($error_test)
{
sc_error_message($error_message);
sc_error_exit();
}

$MULT={MULTIPLICADOR};
$IDM={ID_MULTIPLUS};
$num={N};
$cli={NOME_DO_BEM};
$ID= {id_bem};
$DAT={DATA};
$GEST={GESTOR};
$GRU={GRUPO};
$LOC={LOCAL};
$RES={RESPONSAVEL};
$SEC={SECRETARIA};
$VAL={VALOR_COMPRA};
$NOT={NOTA};
$FOR={FORNECEDOR};
$STA={STATUS};

for ($num == $num; $num <=( $MULT ); $num++){

sc_exec_sql(“INSERT INTO bens
(descricao, data_cadastro, id_gestor, id_local,id_responsavel,id_secretaria, valor_compa,nota_compra, fornecedor, status, ID_MULTI)
VALUES
(’$cli’,’$DAT’,’$GEST’,’$LOC’,’$RES’,’$SEC’,’$VAL’,’$NOT’,’$FOR’,$STA,’$IDM’)”);

}