2014-09-06 21 views
0

我知道這很簡單。我試圖通過模型獲取數據庫中的所有結果,以便我可以通過電子郵件向他們的市場=是的所有人發送電子郵件。在模型中獲得1個以上結果

$this->email->set_newline("\r\n"); 

     $this->email->from('Me, myself and I'); 
     $this->email->to('[email protected]'); 

     $get_emails = $this->db->query("SELECT email FROM repair_mailing_list WHERE $market = 'yes'"); 

     foreach ($get_emails->result_array() as $row) 
     { 
      $row = $get_emails->row(); 
      $email = $row->email; 
      $this->email->to($email); 
     } 

在標準的PHP與mysqli我有它工作正常,但我切換到Codeigniter的一切。它只想通過電子郵件發現它找到的第一條記錄。我知道這是我的fetch_assoc,但我無法弄清楚。

如果有人能指出我的方向會很棒。 謝謝,

+0

您可以爲將來使用想看看https://ellislab.com/codeigniter/user-guide/database/active_record.html專門'$這個 - > DB-> get_where();' – DavidT 2014-09-06 07:58:12

+0

@ DavidT我嘗試使用活動記錄,但它不能正確使用我的變量。當我有我的where變量時,出於某種原因找不到$ market = yes。感到沮喪,並回到我完成第一個方式。但後來遇到這個問題 – 2014-09-06 16:33:37

+0

好的,你還有一個問題,下面的答案有幫助嗎?如果沒有,我不想進一步污染評論,所以我會添加一個答案,進一步解釋我的上述評論。 – DavidT 2014-09-08 08:58:23

回答

1

刪除$row = $get_emails->row();

foreach ($get_emails->result_array() as $row)已經確保$row在每次迭代中被分配一個新值。相反,row()函數總是返回第一行,如Generating Query Results中所述。

0
$resultset = $this->db->query("SELECT email FROM repair_mailing_list WHERE $market = 'yes'"); 
$emails = $resultset->result() 
foreach ($emails as $email) 
{ 
--- 
} 
相關問題