2 回答

TA貢獻1780條經驗 獲得超4個贊
首先獲取所有數據,然后遍歷該數據并發送短信如下
$this->db->select('phone');
$this->db->where('date_of_birth', $today);
$numbers = $this->db->get('tbl_customers')->result_array();
if($numbers){
foreach ($numbers as $key => $value) {
$result = $textlocal->sendSms($value['phone'], $message, $sender);
$this->session->set_flashdata('exception', 'SMS has been sent successfully!');
}
}

TA貢獻1805條經驗 獲得超10個贊
在您的初始代碼中,您使用了 row(),這意味著您只得到一個數字,而不是一個數字數組。使用 result_array() 為您提供了一個關聯數組。
$numbers = $this->db->select('phone')->get_where('date_of_birth', $today)->result_array();
if(!empty($numbers)){
foreach ($numbers as $key => $value) {
$result = $textlocal->sendSms($value['phone'], $message, $sender);
$this->session->set_flashdata('exception', 'SMS has been sent successfully!');
}
} else {
var_dump($numbers);
$this->session->set_flashdata('exception', 'No Numbers found.');
}
如果 SMS 沒有發送,這應該足以幫助您調試代碼。
當您使用 foreach 循環時,無論數據是 1 還是更多,它都應該仍然有效。如果您在應用程序中運行此代碼,則需要應用時間邏輯并將 SMS 發送的結果保存到您的數據庫中。這樣它就不會意外地再次發送給該人,如果您將其作為 cron 作業運行,那么將其設置為每天一次就沒有問題。
- 2 回答
- 0 關注
- 146 瀏覽
添加回答
舉報