2016-01-24 37 views
0

当我使用以下代码发送电子邮件时,它工作正常。Codeigniter选择2个用户并发送给他们电子邮件

public function select() { 
$this->load->library('email', array('mailtype' => 'html')); 
       $this->email->from('[email protected]','abc'); 
       $this->email->to('[email protected]'); 
       $this->email->subject('test subject'); 
       $message = "Hello"; 
       $this->email->message($message); 
       if($this->email->send()) { 
        $data["msg"] = "Email has been successfully sent."; 
        $this->load->view("view_test", $data); 
       } 
       else { 
        $data["msg"] = "Email sending failed."; 
        $this->load->view("view_test", $data); 
       } 
} 

但是,当我要选择2个用户可以通过ID,然后向他们发送电子邮件,这是行不通的。你能否检查下面的代码并帮我找到我的错误。

模型

public function did_select() { 
     $this->db->select('email, name'); 
     $this->db->from('users'); 
     $this->db->where('user_id', 5); 
     $this->db->where('user_id', 11); 
     $query = $this->db->get(); 
     if ($query && $query->num_rows() > 0) { 
      return $query->result_array(); 
     } else { 
      return false; 
     } 
} 

控制器:

public function select() { 
     if ($this->model_admin->did_select()) { 
      foreach ($query->result_array() as $row)   { 
       $name = $row['name']; 
       $email = $row['email']; 
       $this->load->library('email', array('mailtype' => 'html')); 
       $this->email->from('[email protected]','abc'); 
       $this->email->to($email); 
       $this->email->subject($name.'test subject'); 
       $message = "Hello"; 
       $this->email->message($message); 

       if($this->email->send()) { 
        $data["msg"] = "Email has been sucessfully sent."; 
        $this->load->view("view_test", $data); 
       } 
       else { 
        $data["msg"] = "Email sending failed."; 
        $this->load->view("view_test", $data); 
       } 
       } 
      } 
} 

回答

0

问题是这样的两行

$this->db->where('user_id', 5); 
    $this->db->where('user_id', 11); 

这产生查询像

Where user_id=5 and user_id=11 

这不是你想要的。所以,你应该用

$this->db->or_where('user_id', 11);  

替换第二行又也许你应该删除鉴于foreach循环外加载。

0

您已经在模型中返回result_array,因此无需将其加倍。在控制器中尝试下一步:

if ($this->model_admin->did_select()) 
{ 
    $mails = $this->model_admin->did_select(); 
    foreach ($mails as $row) 
    { 
相关问题