Autor Tópico: [RESOLVIDO] - Onde está o erro desse insert?  (Lida 808 vezes)

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
[RESOLVIDO] - Onde está o erro desse insert?
« Online: Maio 10, 2016, 07:04:18 pm »
Olá pessoal,

Estou tentando fazendo um insert dentro de um controle para um usuário ser criado ao clicar no botão salvar. Mas no campo que possui um select não está sendo passado para a variável. Segue o script:

Citar
$vlNome = {TxtNome};
$vlLogin = {TxtLogin};
$vlSenha = {TxtSenha};
$vlSenha = md5($vlSenha);
$vlEmail = {TxtEmail};
$vlUnidade = {ComboUnidade};
//$vlUnidade = [ComboUnidade]; JÁ TENTEI ASSIM TAMBÉM

//Primeiro, consultamos o usuário que será executanda antes dos inserts.
$sql1 = "SELECT * FROM a002_usuarios ";
$sql1 .= "WHERE Usuario_Email = '".$vlEmail."';";

//Segundo, criamos o insert na tabela de usuários
$sql2 =  "INSERT INTO a002_usuarios (Usuario_Nome, Usuario_Login, ";
$sql2 .= "Usuario_Email, Usuario_Senha, Usuario_Tipo) VALUES (";
$sql2 .= "'".$vlNome."', '".$vlLogin."', '".$vlEmail."', '".$vlSenha."', 2);";

//Terceiro, criamos a consulta do usuário para pegar o código
$sql3 = "SELECT Usuario_ID FROM a002_usuarios ";
$sql3 .= "WHERE Usuario_Login = '".$vlLogin."' AND Usuario_Senha = '".$vlSenha."' ";


//Finalmente, vamos realizar os inserts.
sc_lookup(Ds, $sql1); //Fazemos a primeira consulta e verificamos se existem registros
if(!empty({Ds})){
   //Se existir faremos o insert na segunda tabela: a003_usuariosunidades NESSE INSERT É ONDE ESTÁ O PROBLEMA
   $vlUsuario = {Ds[0][0]};
   if(empty({Ds})){
      $sql = "INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES (".$vlUsuario.", ".$vlUnidade.");";
      sc_exec_sql($sql);
   }
}else
   {
      //Se não existir faremos os inserts nas duas tabelas: a002_usuarios e a003_usuariosunidades
      sc_exec_sql($sql2);
      sc_lookup(Ds2, $sql3);

      //E, por último fazemos o insert da unidade AQUI É ONDE ESTÁ O PROBLEMA.
      $vlUsuario = {Ds2[0][0]};
      $sql = "INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES (".$vlUsuario.", ".$vlUnidade.");";
      sc_exec_sql($sql);
   };


Grato,

Ilano
« Última modificação: Maio 12, 2016, 09:36:04 am por Ronyan Alves »

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 167
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:Onde está o erro desse insert?
« Responder #1 Online: Maio 10, 2016, 07:51:20 pm »
Olá, use aspas simples em vez de aspas duplas.
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
Re:Onde está o erro desse insert?
« Responder #2 Online: Maio 10, 2016, 09:04:42 pm »
Cleidson,
Fiz as alterações naquelas linhas:

Citar
$vlNome = {TxtNome};
$vlLogin = {TxtLogin};
$vlSenha = {TxtSenha};
$vlSenha = md5($vlSenha);
$vlEmail = {TxtEmail};
$vlUnidade = {ComboUnidade};

//Primeiro, consultamos o usuário que será executanda antes dos inserts.
$sql1 = "SELECT * FROM a002_usuarios ";
$sql1 .= "WHERE Usuario_Email = '".$vlEmail."';";

//Segundo, criamos o insert na tabela de usuários
$sql2 =  "INSERT INTO a002_usuarios (Usuario_Nome, Usuario_Login, ";
$sql2 .= "Usuario_Email, Usuario_Senha, Usuario_Tipo) VALUES (";
$sql2 .= "'".$vlNome."', '".$vlLogin."', '".$vlEmail."', '".$vlSenha."', 2);";

//Terceiro, criamos a consulta do usuário para pegar o código
$sql3 = "SELECT Usuario_ID FROM a002_usuarios ";
$sql3 .= "WHERE Usuario_Login = '".$vlLogin."' AND Usuario_Senha = '".$vlSenha."' ";


//Finalmente, vamos realizar os inserts.
sc_lookup(Ds, $sql1); //Fazemos a primeira consulta e verificamos se existem registros
if(!empty({Ds})){
   //Se existir faremos o insert na segunda tabela: a003_usuariosunidades
   $vlUsuario = {Ds[0][0]};
   if(empty({Ds})){
      $sql = 'INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES ('.$vlUsuario.', '.$vlUnidade.');';
      sc_exec_sql($sql);
   }
}else
   {
      //Se não existir faremos os inserts nas duas tabelas: a002_usuarios e a003_usuariosunidades
      sc_exec_sql($sql2);
      sc_lookup(Ds2, $sql3);

      //E, por último fazemos o insert da unidade
      $vlUsuario = {Ds2[0][0]};
      $sql = 'INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES ('.$vlUsuario.', '.$vlUnidade.');';
      sc_exec_sql($sql);
   };


Mas retornou a mensagem abaixo:

Citar
Undefined variable: combounidade
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
{SC_DB_ERROR_INI}View SQL{SC_DB_ERROR_MID}INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES (2, );{SC_DB_ERROR_CLS}Close{SC_DB_ERROR_END}

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Onde está o erro desse insert?
« Responder #3 Online: Maio 11, 2016, 08:13:57 am »
Ilano, o problema é que a variável $vlUnidade, está vazio. Isso está no erro que vc nos mostrou, veja:
Undefined variable: combounidade
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
{SC_DB_ERROR_INI}View SQL{SC_DB_ERROR_MID}INSERT INTO a003_usuariosunidades (Usuario_ID, Unidade_ID) VALUES (2, );{SC_DB_ERROR_CLS}Close{SC_DB_ERROR_END}
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
Re:Onde está o erro desse insert?
« Responder #4 Online: Maio 11, 2016, 08:25:08 am »
Olá Thyago Brasil,

Pois é, só que eu estou selecionando o registro lá no campo select (ComboUnidade) e mesmo assim não está vindo.

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Onde está o erro desse insert?
« Responder #5 Online: Maio 11, 2016, 08:38:57 am »
Em qual evento vc está colocando este código? O fato é que a variável está vazia
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
Re:Onde está o erro desse insert?
« Responder #6 Online: Maio 11, 2016, 10:08:33 am »
Cara, eu criei um botão do tipo PHP e inseri o código lá. Esqueci de informar que estou usando o SC 8, não sei se ajuda.

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Onde está o erro desse insert?
« Responder #7 Online: Maio 11, 2016, 10:23:00 am »
Então, vc terá que criar um evento Ajax para os campos que vc está informando e gravar o valor do campo em uma variável global. Para o combo, vc utiliza o evento ajax onChange. Para campos tipo texto, numero, vc usa o onBlur e para radio, vc usa o onClick.

E lá no inicio do seu código, ficaria assim:

Código: [Selecionar]
$vlNome = [v_TxtNome];
$vlLogin = [v_TxtLogin];
$vlSenha = [v_TxtSenha];
$vlSenha = md5($vlSenha);
$vlEmail = [v_TxtEmail];
$vlUnidade = [v_ComboUnidade];
//$vlUnidade = [v_ComboUnidade];
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
Re:Onde está o erro desse insert?
« Responder #8 Online: Maio 11, 2016, 10:51:17 am »
Cara, como não tenho experiência em SC e PHP, vou te fazer uma pergunta idiota:
Meu código continua da mesma forma?

Porque estou tentando apenas vincular unidade e usuário para um usuário já criado e não está rolando.

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Onde está o erro desse insert?
« Responder #9 Online: Maio 11, 2016, 10:55:04 am »
Então Ilano, o seu código vc só muda o inicio que te mostrei acima.

Nos eventos de cada campo vc vai fazer o seguinte:

Por exemplo:

Para o campo {ComboUnidade}, vc vai fazer o seguinte no evento Ajax de cada campo:

Código: [Selecionar]
[v_ComboUnidade] = {ComboUnidade};

Para o campo {TxtEmail}:

Código: [Selecionar]
[v_TxtEmail] = {TxtEmail};

E assim por diante...
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

ilanocf

  • Intermediário
  • ***
  • Mensagens: 124
    • Email
Re:Onde está o erro desse insert?
« Responder #10 Online: Maio 11, 2016, 02:01:55 pm »
Valeu Thyagão, deu tudo certo!

Muito obrigado meu amigo.

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Onde está o erro desse insert?
« Responder #11 Online: Maio 11, 2016, 02:05:14 pm »
Opa, precisando estamos aí!!

Coloque seu tópico como resolvido.

Abraço!
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1