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

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
[RESOLVIDO] - Não consigo executar comando insert into
« Online: Junho 22, 2016, 10:09:02 am »
Pessoal estou usando dentro de um botão run em uma consulta o código abaixo, ele teria que pegar os registros selecionados na consulta e jogar para a tabela "lista" mas me retorna erro:

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 'from lista (secao_lista, id_precos, id_mercado, id_produtos" VALUES "session_id(' at line 1
INSERT INTO from lista (secao_lista, id_precos, id_mercado, id_produtos" VALUES "session_id() , id_precos, id_mercado, id_produtos

O comando que estou usando é esse, eu sei que tem problema na sintax mas não consegui identificar onde.

sc_exec_sql ("INSERT INTO from lista (secao_lista, id_precos, id_mercado, id_produtos" VALUES "session_id() , id_precos,  id_mercado, id_produtos");
« Última modificação: Junho 27, 2016, 10:04:55 am por Ronyan Alves »

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #1 Online: Junho 22, 2016, 10:52:13 am »
Pessoal consegui fazer funcionar o INSERT INTO, agora porem estou com um problema no seguinte, tenho os dados nos campos e ele não pega os dados e coloca para outra tabela.

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Não consigo executar comando insert into
« Responder #2 Online: Junho 22, 2016, 10:59:51 am »
Para dar certo pega o Sessão e joga para uma variável local antes:
$sessao_php = session_id();

Verifica se secao_lista é CHAR na base, se for use "$sessao_php" se não for $sessao_php.

sc_exec_sql ("
INSERT INTO FROM lista
     (secao_lista,
      id_precos,
      id_mercado,
      id_produtos
 VALUES
     '$sessao_php',
      id_precos,
      id_mercado,
      id_produtos
");
« Última modificação: Junho 22, 2016, 12:15:08 pm por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Não consigo executar comando insert into
« Responder #3 Online: Junho 22, 2016, 11:52:59 am »
Precisa remover as aspas duplas tb:
sc_exec_sql ("
INSERT INTO FROM lista
     (secao_lista,
      id_precos,
      id_mercado,
      id_produtos
 VALUES
     '$sessao_php',
      id_precos,
      id_mercado,
      id_produtos
");
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #4 Online: Junho 22, 2016, 12:30:38 pm »
Essa é a solução

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

Porém ele grava o valor da sessao na tabela lista mas os valores dos campos ele não passa. ou seja ele cria os registros e em cada um grava a sessao mas os campos da consulta ele não joga nos campos da tabela de destino.

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Não consigo executar comando insert into
« Responder #5 Online: Junho 22, 2016, 01:40:56 pm »
Passo a passo:

BOTAO RUN - PROCESSAR CONSULTA

Primeiro na Consulta em Eventos (OnScriptInit) colocar:
// BOTÃO RUN
[j] = 0;
[registro_selecionados] = array();


Criar um BOTAO na consulta selecionar tipo = RUN

Dentro do BOTAO no EVENTO (OnRecord) Colocar:
$arr=[j];
[registro_selecionados][$arr]={TabelaConsulta.Movto};
[j]++;


Dentro do BOTAO no EVENTO (OnFinish) Colocar:

$qtde_registros=count([registro_selecionados]);

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

   $Movto_x = [registro_selecionados][$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,
        id_mercado,
        id_produtos
   ");

} // Final for $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 #6 Online: Junho 22, 2016, 01:57:39 pm »
Esta me retornando um erro

Atenção
Undefined variable: tabelaconsulta_movto

Mas mesmo com o erro, ele registra na tabela, por exemplo, se eu selecionar 3 registros e executa e registra 3 registros na outra tabela, porem só grava os dados da variavel sessão e não os valores que preciso do campo dos registros selecionados.

Fiz um teste adicionando 1 em cada campo para ver se ele caia corretamente

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

é funcionou, agora quando tento pegar o dado que esta no campo (select) mas numerio na base de dados para jogar para outra tabela não vai, só o código da seção.

Este código eu colo no botao run do onrecord
« Última modificação: Junho 22, 2016, 02:17:12 pm por wagnerstange »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #7 Online: Junho 22, 2016, 02:23:46 pm »
tabelaconsulta_movto possivelmente é um campo da aplicação do Jailton.
Você deve analisar o código e adequar a sua necessidade.

Veja mais informações em: https://suporte.scriptcase.com.br/index.php?/Knowledgebase/Article/View/17/0/selecionando-os-registros-de-uma-consulta-utilizando-o-botao-run

Lembrando que :
Campos do tipo select inserem o valor interno na base e não o valor exibido.
Exemplo:
"SELECT id, nome FROM Tabela"

- O nome é exibido na aplicação.
- O id é inserido na tabela.
--

Ronyan Alves
Equipe Scriptcase

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Não consigo executar comando insert into
« Responder #8 Online: Junho 22, 2016, 02:25:44 pm »
tabelaconsulta_movto possivelmente é um campo da aplicação do Jailton.
Você deve analisar o código e adequar a sua necessidade.

Veja mais informações em: https://suporte.scriptcase.com.br/index.php?/Knowledgebase/Article/View/17/0/selecionando-os-registros-de-uma-consulta-utilizando-o-botao-run

Lembrando que :
Campos do tipo select inserem o valor interno na base e não o valor exibido.
Exemplo:
"SELECT id, nome FROM Tabela"

- O nome é exibido na aplicação.
- O id é inserido na tabela.


Sim isso mesmo, é só um exemplo, você deve adequar agora a sua tabela e campos.
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 #9 Online: Junho 22, 2016, 02:46:08 pm »
Nossa estou quase largando de mão affff, ele não joga de jeito nenhum o valor dos campos no registro selecionados, ele cria o registro na tabela, grava o valor da seção, agora os campos mesmo que deveriam ser gravados na tabela de destino dos registros selecionados nada.

Sinceramente algo que na plataforma que estou acostumado a fazer é tão simples (VBA) e parece ser tambem no php fica esse entrave.

Não sei o que fazer, se não conseguir fazer um simples registros em uma tabela pegando dados das informações que estou selecionando nem vou tentar fazer outras coisas.

Desculpe o desabafo, mas achei que seria mais simples algo tão simples.

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Não consigo executar comando insert into
« Responder #10 Online: Junho 22, 2016, 03:09:46 pm »
O conteúdo do VALUES  não teria q ser variáveis tb?
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #11 Online: Junho 22, 2016, 03:13:30 pm »
Criei variaveis para receber o valor do campo Tipo assim $precoid = id_preco
Mas não recebe nada, não chega nada e tal. ai não sei mais o que fazer.

Tentei isso em pegar o valor da variavel e jogar o valor da variavel mas não estou conseguindo setar nada para o campo da tabela que contem o valor que quero.

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #12 Online: Junho 22, 2016, 03:16:39 pm »
Por exemplo, quando tento adicionar o valor do campo em uma variavel

[registro_selecionados][$arr]= {id_precos};

Ja fiz com e sem colchetes, e sempre me da retornando que a variavel não foi definida.

Atenção
Undefined variable: id_precos

OBS: Minha consulta é uma junção usando inner join de 3 tabelas, não sei se isso faz diferença, mas já tentei tambem por exemplo colocar na frente o nome da tabela tipo: Preco1.id_precos  mas não resolveu e nem da resultado.
« Última modificação: Junho 22, 2016, 03:18:45 pm por wagnerstange »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Não consigo executar comando insert into
« Responder #13 Online: Junho 22, 2016, 03:18:52 pm »
id_precos é um campo da sua aplicação?
--

Ronyan Alves
Equipe Scriptcase

wagnerstange

  • Iniciante
  • **
  • Mensagens: 66
Re:Não consigo executar comando insert into
« Responder #14 Online: Junho 22, 2016, 03:20:40 pm »
Sim, 3 campos de id_* que tenho que jogar para uma outra tabela que contem os mesmos campos.
« Última modificação: Junho 22, 2016, 03:49:19 pm por wagnerstange »