Insert Mysql syntax error

Asked

Viewed 218 times

2

I can’t resolve the error below:

Notice: Undefined index: Html_cor_task in C: Users User Desktop pi Fe Order2 Cadastrataefa.php on line 14

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 ')(descricao_TAREFA, prioridade_TAREFA, cor_TAREFA) values(','','','',''')' at line 1

Follow my code below:

Formcadastrataefa

<style> 
<?php
include"_style/estilo.css";
include "bootstrap/css/bootstrap.min.css";
include "JavaScript/Modal.js";
?>
</style>



        <script type="text/javascript">

      function mascaraData(val) {
  var pass = val.value;
  var expr = /[0123456789]/;

      for (i = 0; i < pass.length; i++) {
    // charAt -> retorna o caractere posicionado no índice especificado
        var lchar = val.value.charAt(i);
    var nchar = val.value.charAt(i + 1);

    if (i == 0) {
      // search -> retorna um valor inteiro, indicando a posição do inicio da primeira
      // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
      // instStr.search(expReg);
      if ((lchar.search(expr) != 0) || (lchar > 3)) {
        val.value = "";
      }

    } else if (i == 1) {

      if (lchar.search(expr) != 0) {
        // substring(indice1,indice2)
        // indice1, indice2 -> será usado para delimitar a string
        var tst1 = val.value.substring(0, (i));
        val.value = tst1;
        continue;
      }

      if ((nchar != '/') && (nchar != '')) {
        var tst1 = val.value.substring(0, (i) + 1);

        if (nchar.search(expr) != 0)
          var tst2 = val.value.substring(i + 2, pass.length);
        else
          var tst2 = val.value.substring(i + 1, pass.length);

        val.value = tst1 + '/' + tst2;
      }

    } else if (i == 4) {

      if (lchar.search(expr) != 0) {
        var tst1 = val.value.substring(0, (i));
        val.value = tst1;
        continue;
      }

      if ((nchar != '/') && (nchar != '')) {
        var tst1 = val.value.substring(0, (i) + 1);

        if (nchar.search(expr) != 0)
          var tst2 = val.value.substring(i + 2, pass.length);
        else
          var tst2 = val.value.substring(i + 1, pass.length);

        val.value = tst1 + '/' + tst2;
      }
    }

    if (i >= 6) {
      if (lchar.search(expr) != 0) {
        var tst1 = val.value.substring(0, (i));
        val.value = tst1;
      }
    }
  }

  if (pass.length > 10)
    val.value = val.value.substring(0, 10);
  return true;
}
</script>

    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5  /js/bootstrap.min.js"></script> 
       <a data-toggle="modal" href="#myModal"><input type="button" value="Nova Tarefa"></a>

    <div class="modal fade" id="myModal">
    <div class="modal-dialog" >
        <div class="modal-content" id="DivFundo3">
            <div class="modal-header" >
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
                    <h4 class="NovoCad">Cadastre sua tarefa</h4>
            </div>
            <div class="container"></div>
            <div class="modal-body" align="center">

                <form action="CadastraTarefa.php" enctype="multipart/form-data" method="POST" name="FormCadastraTarfa">
                                Título:<input type="text" name="HTML_nome_TAREFA" required="" class="CaixaTextoC" placeholder="Nome" ><br><br>
                                Descrição:<input type="text" cols="20" rows="10" name="HTML_descricao_TAREFA" required="" class="CaixaTextoC" placeholder="Descrição"><br><br><br>
                                Início: <input type="text" name="HTML_dataInicio_TAREFA" onKeyUp="mascaraData(this);"  class="InicioFim" placeholder="**/**/****" >
                                Fim: <input type="text" name="HTML_dataFim_TAREFA" onKeyUp="mascaraData(this);"  class="InicioFim" placeholder="**/**/****" ><br><br>
                                Colaborador:<input type="email" name="HTML_email_TAREFA" class="CaixaTextoC" placeholder="Adicionar colaborador"><br><br>
                                Prioridade: <select name="HTML_prioridade_TAREFA">
                                    <option value="1">Importante</option>
                                    <option value="2">Supérforo</option>
                                    <option value="3">Sem importância</option>
                                </select><br><br>
                                Cor:<input type="color" name="HTML_cor_TAREFA" class="ColorBottom"><br><br>



            <div class="modal-footer">
                <input type="submit" value="Cadastrar" class="Entrar" >
              <a href="#" data-dismiss="modal" class="btn btn-danger">Fechar</a>

            </div>
                </form>
        </div>
    </div>

</div>

Cadastrataefa

<?php

require_once 'Classes/TarefasVO.php';
require_once 'Classes/TarefasDAO.php';

 $objTarefa=new TarefasVO();


 $nome=$_POST['HTML_nome_TAREFA'];
 $descricao= $_POST['HTML_descricao_TAREFA'];
 $inicio= $_POST['HTML_dataInicio_TAREFA'];
 $fim= $_POST['HTML_dataFim_TAREFA'];
 $prioridade= $_POST['HTML_prioridade_TAREFA'];
 $cor= $_POST['HTML_cor_TAREFA'];

 $objBDTarefa=new TarefasDAO();


 $objTarefa->setNomeTarefa($nome);
 $objTarefa->setInicioTarefa($inicio);
 $objTarefa->setFimTarefa($fim);
 $objTarefa->setDescricaoTarefa($descricao);
 $objTarefa->setPrioridadeTarefa($prioridade);
 $objTarefa->setCorTarefa($cor);



  $objBDTarefa->CadastraTarefa($objTarefa); 



   header("location:Index.php");




      ?>

tarefasDAO

 <?php

 require_once "TarefasVO.php";
 require_once "BancoDAO.php";

 class TarefasDAO {
 public function CadastraTarefa($tmpTarefa){

$objBDpi=new BancoDAO();
$objBDpi->AbreConexao();

$mysqli = new mysqli('localhost', 'root', '', 'bdpi');

$sqlCadastraTarefa="Insert into Tarefas (nome_TAREFA, dataInicio_TAREFA, dataFim_TAREFA, )";
$sqlCadastraTarefa.="(descricao_TAREFA, prioridade_TAREFA, cor_TAREFA)";
$sqlCadastraTarefa.=" values(";
$sqlCadastraTarefa.="'".$tmpTarefa->getNomeTarefa()."',";
$sqlCadastraTarefa.="'".$tmpTarefa->getInicioTarefa()."',";
$sqlCadastraTarefa.="'".$tmpTarefa->getFimTarefa()."',";
$sqlCadastraTarefa.="'".$tmpTarefa->getDescricaoTarefa()."',";
$sqlCadastraTarefa.="'".$tmpTarefa->getPrioridadeTarefa()."',";
$sqlCadastraTarefa.="'".$tmpTarefa->getCorTarefa()."')";

mysqli_query($mysqli,$sqlCadastraTarefa) or die(mysqli_error($mysqli));



 header("location:Index.php");
}
}
  • Fer, first the value you receive in $cor= $_POST['HTML_cor_TAREFA']; then try to give a die $sqlCadastraTarefa to see how your command Insert is formed

1 answer

1

One problem I’ve detected is that you’re mislinking the instruction insert.

Try to arrange for the following way

$sqlCadastraTarefa="Insert into Tarefas (nome_TAREFA, dataInicio_TAREFA, dataFim_TAREFA, ";
$sqlCadastraTarefa.="descricao_TAREFA, prioridade_TAREFA, cor_TAREFA)";

The way you concatenated would be getting the instruction as follows

Insert into Tarefas (nome_TAREFA, dataInicio_TAREFA, dataFim_TAREFA, )(descricao_TAREFA, prioridade_TAREFA, cor_TAREFA)

Getting a ,) ( between the columns.

The way I put it would look

Insert into Tarefas (nome_TAREFA, dataInicio_TAREFA, dataFim_TAREFA, descricao_TAREFA, prioridade_TAREFA, cor_TAREFA)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.