如何从表单输入选择选项中获取字符串

时间:2016-09-27 15:19:46

标签: php html5

我有这个表单,以便人们可以将一些数据插入数据库。

            <form action="publicar_action.php"  method="POST">
            <input type="text" name="concNome"  placeholder="nome do concurso"> <br>

            <select name="concInstrumento">
                <option>guitarra</option>
                <option>flauta</option>
            </select>

            <input type="date" name="concDataDE"    ><br>
            <input type="date" name="concDataATE"   ><br>
            <input type="text" name="concDescricao" placeholder="Descrição"><br><br>

            <input type="submit">       
        </form>

我有这个数据库mr_concursos,它有2个表:guitarraflauta。 我想要做的是将数据插入相应的表中。该表将由用户在表单上选择的选项选择。

像这样:

    <?php   
        $con = mysqli_connect('localhost', 'root', '', 'mr_concursos');
        $concNome = $_POST['concNome'];
        $concInstrumento = $_POST['concInstrumento'];
        $concDataDE = $_POST['concDataDE'];
        $concDataATE = $_POST['concDataATE'];
        $concDescricao = $_POST['concDescricao'];
        $sql = "INSERT INTO $concInstrumento (nome, instrumento, dataDE, dataATE, descricao) VALUES ('$concNome', '$concInstrumento', '$concDataDE', '$concDataATE', '$concDescricao')";
        $result = mysqli_query($con,$sql);
        header('Location: publicar.php');

两个表都有相同的列。

由于某种原因,它不起作用。

如果不是select / option标签,我只使用一个简单的文本字段,并写下表的名称,它只会被插入到表guitarra中。它不适用于flauta ...

你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

您错过了formPHP conditions的以下限制。

HTML:

  1. 选项标签缺少值
  2. 提交按钮缺少名称
  3. PHP

    1. isset()条件丢失,因为如果页面已发布,我们必须使用此进行检查。
    2. 插入语句错过了您在表名
    3. 中放置的表名的标记

      因此,您的整个代码应如下所示。

      <强> HTML:

      <form action="publicar_action.php"  method="POST">
      <input type="text" name="concNome"  placeholder="nome do concurso"> <br>
      <select name="concInstrumento">
      <option value="guitarra">guitarra</option>
      <option value="flauta">flauta</option>
      </select>
      
      <input type="date" name="concDataDE"><br>
      <input type="date" name="concDataATE"><br>
      <input type="text" name="concDescricao" placeholder="Descrição"><br><br>
      
      <input type="submit" name="save"  value="Submit">       
      </form>
      

      <强> publicar_action.php

      <?php   
      $con = mysqli_connect('localhost', 'root', '', 'mr_concursos');
      if(isset($_POST['save'])){ // where save is the name of the input button
      $concNome = $_POST['concNome'];
      $concInstrumento = $_POST['concInstrumento'];
      $concDataDE = $_POST['concDataDE'];
      $concDataATE = $_POST['concDataATE'];
      $concDescricao = $_POST['concDescricao'];
      
      $sql = "INSERT INTO $concInstrumento (`nome`, `instrumento`, `dataDE`, `dataATE`, `descricao`) VALUES ('".$concNome."', '".$concInstrumento."', '".$concDataDE."', '".$concDataATE."', '".$concDescricao."')";
      $result = mysqli_query($con,$sql);
      header('Location: publicar.php');
      }
      ?>
      

      为了确保Insert Statement正确地工作到数据库,您可以按照要点进行操作。

        

      注意:您首先将echo放入Insert语句,然后通过放置退出来中断执行;然后复制回显的语句并将其放在DB的SQL中,然后检查插入中是否发生错误。如果没有错误发生,请删除echo并删除退出;

      希望解释清楚,如果将来发生错误,将有助于纠正错误。

      快乐编码:)