如何在php中插入多个数组记录?

时间:2017-03-11 17:15:01

标签: javascript php

我创建了一个多输入行,允许使用javascript添加和删除行。

以下是代码:



var field = 1;

function plan_fields() {

  field++;
  var objTo = document.getElementById('plan_fields')
  var divtest = document.createElement("div");
  divtest.setAttribute("class", "form-group removeclass" + field);
  var rdiv = 'removeclass' + field;
  divtest.innerHTML = '<div class="col-sm-4 nopadding"><div class="form-group"> <input type="text" class="form-control" id="plannumber" name="plannumber[' + field + ']" value="" placeholder="School name"></div></div><div class="col-sm-4 nopadding"><div class="form-group"> <input type="text" class="form-control" id="Degree" name="Degree[' + field + ']" value="" placeholder="Degree"></div></div><div class="col-sm-4 nopadding"><div class="form-group"><div class="input-group"> <select class="form-control" id="plandate" name="plandate[' + field + ']"><option value="">Date</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option> </select><div class="input-group-btn"> <button class="btn btn-danger" type="button" onclick="remove_plan_fields(' + field + ');"> <span class="glyphicon glyphicon-minus" aria-hidden="true"></span> </button></div></div></div></div><div class="clear"></div>';

  objTo.appendChild(divtest)
}

function remove_plan_fields(rid) {
  $('.removeclass' + rid).remove();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form action="?create" method="post">
  <div class="panel-body">
    <div id="plan_fields">

    </div>
    <div class="col-sm-4 nopadding">
      <div class="form-group">
        <input type="text" class="form-control" id="plannumber" name="plannumber[0]" value="" placeholder="Plan Number">
      </div>
    </div>
    <div class="col-sm-4 nopadding">
      <div class="form-group">
        <input type="text" class="form-control" id="context" name="context[0]" value="" placeholder="Context represented on plan">
      </div>
    </div>


    <div class="col-sm-4 nopadding">
      <div class="form-group">
        <div class="input-group">
          <select class="form-control" id="plandate" name="plandate">
          
            <option value="">Date Completed</option>
            <option value="2015">2015</option>
            <option value="2016">2016</option>
            <option value="2017">2017</option>
            <option value="2018">2018</option>
          </select>
          <div class="input-group-btn">
            <button class="btn btn-success" type="button" onclick="plan_fields();"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> </button>
          </div>
        </div>
      </div>
    </div>
    <div class="clear"></div>

  </div>

  <div class="form-group">
    <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3">
      <button type="submit" value="submit" class="btn btn-success">Add Plan</button>
    </div>
  </div>

</form>
&#13;
&#13;
&#13;

现在,我想添加多个数组的记录,但我被困在这里,所以如何修复我的php部分?

<?php             
  $host     = "localhost";
  $username = "root";
  $password = "";
  $dbname   = "project";

  if (isset($_GET['create'])) {
  $link = mysqli_connect($host, $username, $password, $dbname)
      or die('Could not connect: ' . mysqli_error());

  mysqli_select_db($link, $dbname) 
      or die('Could not select database');

    foreach($_POST as $key => $value)
  {
      if (strstr($key, ''))
      {
          $x = str_replace('',NULL,$key);
          inserttag($value, $x);
      }
  }

  $plannumber= $_POST['plannumber[]'];
  $plan = $_POST['context[]'];
  $date = $_POST['plandate[]'];


  $query = "INSERT INTO plans
            VALUES ($plannumber,'$date','$plan')";
  $result = mysqli_query($link, $query) or die('Could not connect: ');

  $message = "Plan Added";
  echo "<script type='text/javascript'>alert('$message');window.location.href = 'plans.php';</script>";



  }


?>

2 个答案:

答案 0 :(得分:0)

如果要在表中存储数组,则可以使用serialize($array)函数(将$ array替换为数组变量名)。它将返回序列化数据,然后您可以存储该序列化数组,我强烈建议您准备好语句。你的代码非常不安全。

答案 1 :(得分:0)

首先你需要一个包含数组值的变量,然后数组值内嵌一个空格分隔符,implode separator值是一个字符串。然后你可以插入分隔符值。喜欢这个

$plannumber= $_POST['plannumber[]'];
$plannumber_separated = implode(" ", $plannumber);
$plan= $_POST['context[]'];
$plan_separated = implode(" ", $plan);
$query = "INSERT INTO plansVALUES ($plannumber_separated,$plan_separated)";