我遇到for循环问题。在mysql中重复值

时间:2014-11-17 11:30:15

标签: php for-loop laravel

我的控制器

for($a=0; $a<count($area_id); $a++)
{
  for($i=0; $i<count($estimated_time); $i++)
   {
      $project_area = new Projectarea;
      $project_area->area_id = $area_id[$a];
      $project_area->project_id = $project->id;
      $project_area->estimated_time = $estimated_time[$i];
      $project_area->save();
    }
}
return Redirect::to('admin');

我的观点

<div class="form-group">
  <label for="select_client">Choose area</label>
     <select class="form-control" name="area_id[]"  multiple="multiple">
     @foreach($area as $row)
        <option class="click" value="{{ $row->id }}" area="{{ $row->id }}">{{$row->area_name}}</option>
     @endforeach
     </select>

    @foreach($area as $row)
      <input class="other" id="{{ $row->id }}" type="text" name="estimated_time[]" placeholder="{{ $row->area_name }}" />
    @endforeach
</div>

mysql结果。

如果我选择多个选择中的三个值,我将此结果存储在数据库中

project_id  area_id estimated_time
123           7          0
123           7          2
123           7          3
123           7          4
123           7          0
123           8          0
123           8          2
123           8          3
123           8          4
123           8          0
123           9          0
123           9          2
123           9          3
123           9          4
123           9          0
124           8          0

谢谢

2 个答案:

答案 0 :(得分:0)

你的错误是由于双重预告,你预计会花费太多时间。

选择了3个值=每个估算时间(for($a=0; $a<count($area_id); $a++))的3个循环(for($i=0; $i<count($estimated_time); $i++))* n循环

所以删除第二个foreach并通过数组访问POST:

var_dump($_POST);
for($a=0; $a<count($_POST['area_id']); $a++)
{

    var_dump($_POST['estimated_time'][$_POST['area_id'][$a]]);
    var_dump($_POST['area_id'][$a]);
    echo 'insert';

}

编辑:这是对我们的代码进行更正,但您的构思仍然错误

答案 1 :(得分:0)

从您的问题中难以理解,但是,如果我理解正确,您试图根据位置插入项目的估计时间。问题是你实际上不需要内部for循环,因为,estimate_time数组和area_id数组实际上是相同的大小。

请尝试以下代码:

for($i=0; $i<count($area_id); $i++)
{
      $project_area = new Projectarea;
      $project_area->area_id = $area_id[$i];
      $project_area->project_id = $project->id;
      $project_area->estimated_time = $estimated_time[$i];
      $project_area->save();
}
return Redirect::to('admin');