对数据库进行多重选择和插入编码



我正试图用codeigniter建立一个幻想足球联赛,到目前为止还不错,但我有一个问题,球员选择为一个特定的幻想球队。到目前为止,你可以看到玩家每次都有一个添加玩家的按钮。我的问题是我如何创建一个代码来选择15名球员,然后将所有球员插入数据库,而不是一次添加一个…这是我的控制器

 public function addPlayer($playerID)
{
        $this->load->model('team_model');
    $data=array(
        'GK1'=>$playerID,
         );
        $this->team_model->add_player($data);
    $this->load->view('header');
    $this->load->view('transfer_view');
     $this->load->view('footer');

}

和My Model

              function add_player($data){
           $this->db->insert('fantansyteams',$data);

            }

我正在使用杂货库生成视图

public function transfers($output = null)
{
$crud = new grocery_CRUD();
        $crud->set_theme('datatables');
        $crud->set_table('player');
        $crud->add_action('Add', '', 'team/addPlayer','ui-icon-plus');
        $crud->columns('playerName','value','position');

        $output = $crud->render();

 $this->load->view('header');
$this->load->view('transfer_view',$output);
$this->load->view('footer');

}

我认为你可以:

  1. 创建一个返回所有玩家的模型
  2. 使用复选框列表创建表单

的例子:

<?php foreach ($players as $player) : ?>
   <input type="checkbox" name="players[]" value="<?= $player->id ?>" > <?= $player->name ?> </input>
<?php endforeach; ?>

我在一个php文件

if (isset($_POST['players'])) {
    // players id list
    var_dump($_POST['players']);
}    
// players list 
echo "<form action='' method='POST' >
        <input type='checkbox' name='players[]' value='1'> Player 1 </input>
        <input type='checkbox' name='players[]' value='2'> Player 2 </input>
        <input type='checkbox' name='players[]' value='3'> Player 3 </input>
        <input type='checkbox' name='players[]' value='15'> Player 15 </input>
        <input type='submit' value='Add'>
      </form>";

例如,当我选择播放器1和15的var_dump结果是:

array (size=2)
  0 => string '1' (length=1)
  1 => string '15' (length=2)

我还没有尝试codeIgniter,但如果你已经使用codeIgniter的形式,这将是很容易的,我认为:)

我希望这能回答你的问题。

我认为你需要在控制器中传递一个数组"playerID":

$data = array(
           'GK1'=> $playerID, // 'GK1' => array(1,2,3,12...)
        );

,在你的模型中:

function add_player($data){
  // foreach players (1,2,3,12...) => insert the player
  foreach($data['GK1'] as $playerID) {
     $this->db->insert('fantansyteams', array('GK1' => $playerID));
  }
}

就像你可以插入1,2,15,100个玩家

我希望这对你有帮助。

最新更新