将逗号分隔的数字以相同的形式插入codeigniter中的同一列

时间:2017-02-08 12:44:08

标签: php codeigniter

我需要以这种格式在一个表单中插入数字 1,5,8,7。 单击提交按钮时,奇数将存储在 ODD 表中,偶数存储在 EVEN 表中。

这是控制器的代码。

a

这是奇数模型的代码。

remove-space

}

这是偶数模型的代码。

function insert_num(){
   $x=$this->input->post('number');
    foreach( explode(',',$x)as $no) {

      if ($no%2==0){
          $newdata= array(
              'number'=>$no
                );

     $this->even_num_mod->insert_even($newdata);
     redirect(base_url().'index.php/numbers/get_number');
 }
    //else if($x%2==1){
       else {
          $newdata= array('o_number'=>$no);


        $this->odd_num_mod->insert_odd($newdata);

     redirect(base_url().'index.php/numbers/get_number');
}
    }
enter code here

}

并且视图的代码是

class Odd_num_mod extends CI_Model {
public function __construct() {
    parent::__construct();
}
function odd_number(){
    $sql = "select * from odd_number";
    $query = $this->db->query($sql);
    return  $query->result_array();
}

   function insert_odd($data){
  $this->db->insert('odd_number',$data);

}

    

  class Even_num_mod extends CI_Model {
  public function __construct() {
    parent::__construct();
  }

  function even_number(){
    $sql = "select * from even_number";
    $query = $this->db->query($sql);
    return $query->result_array();

}
function even_sum(){
     $this->db->select_sum('number');   
    $this->db->from('even_number');
    $query=$this->db->get();
    return  $query->result_array();
}

function insert_even($data){
$this->db->insert('even_number',$data);

 }

执行代码时,只有第一个数字存储在它所属的表中。

2 个答案:

答案 0 :(得分:0)

首次插入后您将重定向,这将停止进一步执行。试试这段代码:

控制器

    function insert_num(){


       $x=$this->input->post('number');
        foreach( explode(',',$x)as $no) {

          if ($no%2==0){
              $newdata= array(
                  'number'=>$no
                    );

         $this->even_num_mod->insert_even($newdata);

     }
           else {
              $newdata= array('o_number'=>$no);


            $this->odd_num_mod->insert_odd($newdata);


    }
        }
   redirect(base_url().'index.php/numbers/get_number');
}

答案 1 :(得分:0)

请从控制器中删除redirect(base_url().'index.php/numbers/get_number');。在插入第一个数字后,它将停止执行并重定向。

function insert_num(){
   $x=$this->input->post('number');
    foreach( explode(',',$x)as $no) {

      if ($no%2==0){
          $newdata= array(
              'number'=>$no
                );

     $this->even_num_mod->insert_even($newdata);
     //redirect(base_url().'index.php/numbers/get_number');
      }
    //else if($x%2==1){
       else {
          $newdata= array('o_number'=>$no);
          $this->odd_num_mod->insert_odd($newdata);
     //redirect(base_url().'index.php/numbers/get_number');
       }
    }
    redirect(base_url().'index.php/numbers/get_number');