Autor Tópico: [RESOLVIDO] - Não consigo executar comando insert into  (Lida 639 vezes)

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Não consigo executar comando insert into
« Responder #15 Online: Junho 22, 2016, 04:01:13 pm »
Com mais registros só criar mais arrays para pegar eles:
OnScriptInit
[registro_selecionados_id1] = array();
[registro_selecionados_id2] = array();
[registro_selecionados_id3] = array();

OnRecord
[registro_selecionados_id1][$arr]={SuaTabela.NumeroMovto};
[registro_selecionados_id2][$arr]={SuaTabela.DataBoleto};
[registro_selecionados_id3][$arr]={SuaTabela.Operacao};

OnFinish
for($x=0; $x<$qtde_registros; $x++){

   $Movto_x = [registro selecionados_id1][$x];
   $DataBoleto_x = [registro selecionados_id2][$x];
   $Operação_x = [registro selecionados_id3][$x];
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #16 Online: Junho 22, 2016, 04:53:40 pm »
Agora até usei o código que esta no proprio scriptcase e mudei e nada, a mesma coisa, inclusive ele cria os registros da quantidade de itens que selecionei na consulta, quando abro a tabela os campos estão null sem nada mas com o registro criado.

Penso que se ele cria  a quantidade de registros na outra tabela de acordo com os itens que selecionei na consulta quer dizer que a arrar e o acesso a tabela esta funcionando, se eu colocar um valor fixo no lugar do campo que quero puxar os dados, por exemplo eu coloquei 1 para os campos receberem, blz funciona perfeito, agora quero que os valores dos campos setados recebam os dados dos campos indicados e isso não funciona, ou estou fazendo algo muito errado ou isso é bug da ferramenta.

Preciso de ajuda.

// SQL statement parameters
$insert_table  = 'lista';      // Table name
$insert_fields = array(   // Field list, add as many as needed
     'id_precos' => 'id_precos',
   'id_produtos' => 'id_produtos',
   'id_mercado' => 'id_mercado',

 );


FIZ ASSIM E AI RECEBE OS DADOS

'id_precos' => 1,
   'id_produtos' => 1,
   'id_mercado' => 1,


MAS NÃO É ISSO, TEM QUE PEGAR OS DADOS DOS CAMPOS DOS REGISTROS SELECIONADOS


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

sc_exec_sql($insert_sql);


Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #17 Online: Junho 22, 2016, 05:02:08 pm »
Faz o seguinte:

-- OnScriptInit

[registro_selecionados_id1] = array();
[registro_selecionados_id2] = array();
[registro_selecionados_id3] = array();
[counter] = 0;

Configura todas as variáveis globais para SAÍDA

-- OnRecord

$i = [counter];
[registro_selecionados_id1][$i]={SuaTabela.NumeroMovto};
[registro_selecionados_id2][$i]={SuaTabela.DataBoleto};
[registro_selecionados_id3][$i]={SuaTabela.Operacao};
[counter]++;

-- OnFinish

$qtde = count(registro_selecionados_id1);
for($x=0; $x<$qtde; $x++){

$sql = "INSERT INTO tabela (campo1,campo2,campo3) VALUES ( ' ".registro_selecionados_id1." ' , ' ".registro_selecionados_id2." ' , ' ".registro_selecionados_id3." ' ");
sc_exec_sql($sql);

}
sc_reset_global([registro_selecionados_id1],[registro_selecionados_id2] ,[registro_selecionados_id3],[counter]);

Possivelmente, com isso aí em cima, funciona corretamente.
--

Ronyan Alves
Equipe Scriptcase

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Não consigo executar comando insert into
« Responder #18 Online: Junho 22, 2016, 08:29:58 pm »
Na consulta tem a parte SQL que gera a consulta, copia a SQL inteira e cola aqui pra gente ver, e lista os campos que estão aparecendo visualmente no grid da consulta.

Ai com esses dados consigo ter precisão, para montar o exemplo.

« Última modificação: Junho 22, 2016, 08:57:44 pm por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #19 Online: Junho 23, 2016, 09:03:05 am »
A solução do Ronyan Alves tem me retornado erro.

Jailton abaixo o que me pediu.

                      
Produtos1.foto_produtos       
                       Precos1.id_produtos       
                       Precos1.id_mercado       
                       Precos1.preco_produto       
                       Precos1.data_atualizacao       
                       Produtos1.tipo_produtos       
                       Produtos1.subtipo_produtos       
                       Mercado1.municipio_mercado       
                       secao       
                       Precos1.id_precos



SELECT
   Precos1.id_precos,
   Precos1.id_produtos,
   Precos1.id_mercado,
   Precos1.preco_produto,
   Precos1.data_atualizacao,
   Precos1.status_precos,
   Produtos1.id_produtos,
   Produtos1.descricao_produtos,
   Produtos1.medida_produtos,
   Produtos1.foto_produtos,
   Produtos1.tipo_produtos,
   Produtos1.subtipo_produtos,
   Produtos1.status_produtos,
   Mercado1.id_mercado,
   Mercado1.nome_mercado,
   Mercado1.logo_mercado,
   Mercado1.municipio_mercado,
   Mercado1.uf_mercado,
   Mercado1.status_mercado
FROM
   precos Precos1 INNER JOIN produtos Produtos1 ON Precos1.id_produtos = Produtos1.id_produtos
   INNER JOIN mercado Mercado1 ON Precos1.id_mercado = Mercado1.id_mercado
WHERE
   (Precos1.status_precos = 'Ativo') AND
   (Produtos1.status_produtos = 'Ativo')
« Última modificação: Junho 23, 2016, 09:16:23 am por wagnerstange »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #20 Online: Junho 23, 2016, 10:00:59 am »
É, por que nesta parte:
$sql = "INSERT INTO tabela (campo1,campo2,campo3) VALUES ( ' ".registro_selecionados_id1." ' , ' ".registro_selecionados_id2." ' , ' ".registro_selecionados_id3." ' ");
sc_exec_sql($sql);

Deve ser:
$sql = "INSERT INTO tabela (campo1,campo2,campo3) VALUES ( ' ".[registro_selecionados_id1][$x]." ' , ' ".[registro_selecionados_id2][$x]." ' , ' ".[registro_selecionados_id3][$x]." ' ");
sc_exec_sql($sql);
--

Ronyan Alves
Equipe Scriptcase

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #21 Online: Junho 23, 2016, 10:08:29 am »
Ronyan, esta me retornando erro de sintax mas consegui acertar, mas quando seleciono os registros e clico no botao run me retorna os erro abaixo:

Atenção
Use of undefined constant registro_selecionados_id1 - assumed 'registro_selecionados_id1'
Atenção
Use of undefined constant registro_selecionados_id1 - assumed 'registro_selecionados_id1'
Atenção
Use of undefined constant registro_selecionados_id2 - assumed 'registro_selecionados_id2'
Atenção
Use of undefined constant registro_selecionados_id3 - assumed 'registro_selecionados_id3'
Atenção
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
INSERT INTO lista (id_precos,id_produtos,id_mercado) VALUES ( ' r ' , ' r ' , ' r '
« Última modificação: Junho 23, 2016, 10:15:58 am por wagnerstange »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #22 Online: Junho 23, 2016, 10:11:11 am »
Você verificou a setença ou no código fonte o erro?

Se não, o erro está na utilização das aspas duplas para encerrar a String.

$sql = "INSERT INTO tabela (campo1,campo2,campo3) VALUES ( ' ".[registro_selecionados_id1][$x]." ' , ' ".[registro_selecionados_id2][$x]." ' , ' ".[registro_selecionados_id3][$x]." ' )";

Apenas isto.
--

Ronyan Alves
Equipe Scriptcase

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #23 Online: Junho 23, 2016, 10:36:37 am »
Não deu certo, editei as aspas duplas mas não funciona fica dando erro de acesso a tabela, mas quando vejo os dados da seção, os dados selecionados estão salvos corretamente nas arrays, quando é para pegar os dados das arrays para dentro da outra tabela não vai de jeito nenhum.

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #24 Online: Junho 23, 2016, 11:01:25 am »
Envia uma imagem do erro.
--

Ronyan Alves
Equipe Scriptcase

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Não consigo executar comando insert into
« Responder #25 Online: Junho 23, 2016, 11:31:26 am »
Passo a passo:

BOTAO RUN - PROCESSAR CONSULTA

Primeiro na Consulta em Eventos (OnScriptInit) colocar:
// BOTÃO RUN
[j] = 0;
[registro_selecionados_id1] = array();  // Esse vai receber {Precos1.id_precos}
[registro_selecionados_id2] = array();  // Esse vai receber {Precos1.id_mercado}
[registro_selecionados_id3] = array();  // Esse vai receber {Precos1.id_produtos}


Criar um BOTAO na consulta selecionar tipo = RUN

Dentro do BOTAO no EVENTO (OnRecord) Colocar:
$arr=[j];
[registro_selecionados_id1][$arr]={Precos1.id_precos};
[registro_selecionados_id2][$arr]={Precos1.id_mercado};
[registro_selecionados_id3][$arr]={Precos1.id_produtos};
[j]++;


Dentro do BOTAO no EVENTO (OnFinish) Colocar:

$qtde_registros=count([registro_selecionados_id1]);

for($x=0; $x<$qtde_registros; $x++){

   $id_precos_x = [registro_selecionados_id1][$x];
   $id_mercado_x = [registro_selecionados_id2][$x];
   $id_produtos_x = [registro_selecionados_id3][$x];
   
   // Inserir Novo Registro
   
   $sessao_php = session_id();
   
   sc_exec_sql ("
   INSERT INTO FROM lista
       (secao_lista,
        id_precos,
        id_mercado,
        id_produtos
    VALUES
       '$sessao_php',
        $id_precos_x,
        $id_mercado_x,
        $id_produtos_x
   ");

} // Final for $x
« Última modificação: Junho 23, 2016, 11:33:30 am por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #26 Online: Junho 23, 2016, 12:24:00 pm »
Jailton, FUNCIONOOOOOOUUU, só no final que não estava batendo as aberturas e fechamentos

sc_exec_sql (" INSERT INTO FROM lista (secao_lista, id_precos, id_mercado, id_produtos VALUES '$sessao_php', $id_precos_x, $id_mercado_x, $id_produtos_x ");

CORRIGI E FICOU ASSIM:

sc_exec_sql (" INSERT INTO lista (secao_lista, id_precos, id_mercado, id_produtos) VALUES ('$sessao_php', $id_precos_x, $id_mercado_x, $id_produtos_x)");

Quero agradecer a ajuda pois esse código vou usar muito mas muito mesmo nos meus projetos por isso tive que insistir nele até resolver, para assim usar a ferramenta completa mesmo.
« Última modificação: Junho 23, 2016, 12:26:08 pm por wagnerstange »

Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Não consigo executar comando insert into
« Responder #27 Online: Junho 23, 2016, 12:27:43 pm »
Jailton, FUNCIONOOOOOOUUU, só no final que não estava batendo as aberturas e fechamentos

sc_exec_sql (" INSERT INTO FROM lista (secao_lista, id_precos, id_mercado, id_produtos VALUES '$sessao_php', $id_precos_x, $id_mercado_x, $id_produtos_x ");

CORRIGI E FICOU ASSIM:

sc_exec_sql (" INSERT INTO lista (secao_lista, id_precos, id_mercado, id_produtos) VALUES ('$sessao_php', $id_precos_x, $id_mercado_x, $id_produtos_x)");

Quero agradecer a ajuda pois esse código vou usar muito mas muito mesmo nos meus projetos por isso tive que insistir nele até resolver, para assim usar a ferramenta completa mesmo.


Ok muito bom, agora altera o tópico no Início = [Resolvido]Não consigo executar comando insert into
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.