如何将数据从数组发布到数据库

时间:2013-04-09 08:05:11

标签: php codeigniter

你好编码员。我将数据插入数据库时​​遇到问题,请你帮我控制一下这个功能? 这是我的php表单:

<form method='post' action='<?php echo site_url('a3_bus_system/output')?>'>
    <div class="_25">
        <strong>Route Name/Number</strong>
        <br/>
        <input type="text" name=""></input>
    </div>

        <p>&nbsp;<p>&nbsp;</p></p>

        <p>&nbsp;<p>&nbsp;</p></p>
        </p>

    <div id="div">

    </div>

  <p>&nbsp;</p><div class="_25">

    <p><input type="button" name="button" class="button red" id="button" value="Add"  onclick="generateRow() "/></a></p>
</div>
 <input type='button' value='Remove Button' id='removeButton'>

<p>&nbsp;</p><p>&nbsp;</p></div>

<input type="submit"  class="button blue" id="button" value="Register" />

</form> 
</div>


</div>

<div class="clear height-fix"></div>

        </div></div> <!--! end of #main-content -->
  </div> <!--! end of #main -->
 <script>
 var counter=1;
    function generateRow() {
    var count="<font color='red'>"+counter+"</font>";
   var temp ="  <p>&nbsp;&nbsp;&nbsp;&nbsp;<div class='_25'><input type='textbox' id='textbox' name='stop["+counter+"]' placeholder='Stop Name'></input></div>&nbsp;&nbsp;&nbsp;<div class='_25'><input type='textbox' id='textbox' name='timing["+counter+"]' placeholder='Timing'></input></div>&nbsp;<div class='_25'><select id='ampm' name='ampm["+counter+"]'><option>a.m</option><option>p.m</option></select>  </div>";

var newdiv = document.createElement('div');
newdiv.innerHTML = temp + count;

var yourDiv = document.getElementById('div');

yourDiv.appendChild(newdiv);
counter++;
    }
    </script>

这是我的控制器功能:

public function output()
    {
    $common['common']=$this->common;
    $this->load->helper('form');
    $this->load->database();


    foreach ($_POST['stop'] as $stopIndex => $stopValue) {

    if($stopValue!=NULL)
    {

    echo $stopIndex;
    echo $stopValue;

        }
    }
    foreach ($_POST['timing'] as $timingIndex => $timingValue)
    {
    if($timingValue!=NULL)
    {
    echo $stopValue['data'];
    }


}
foreach ($_POST['ampm'] as $ampmIndex => $ampmValue) {

  if($timingValue!=NULL)
    {
  echo $ampmValue;
  }
}

    $this->output->enable_profiler(TRUE);
    }   

这些是我的数据库字段:

route_number   stop_name   am_pm   timing

请给我一种插入查询的方法,将所有这些输入字段发布到数据库中。

2 个答案:

答案 0 :(得分:1)

你有模型吗?在Codeigniter中,您应该使用模型进行所有直接数据库活动。有关模型的所有信息,请参阅此处:http://ellislab.com/codeigniter/user-guide/general/models.html

在那里你会按照这里解释的那样进行插入:http://ellislab.com/codeigniter/user-guide/database/examples.html尽管我总是使用Active Record Class方式(http://ellislab.com/codeigniter/user-guide/database/active_record.html),但它更简单,抽象真的很有帮助。

答案 1 :(得分:0)

您无法直接在数据库中发布数组... 插入前序列化数据 提取后取消序列化