2016-08-17 8 views
-1

以下のコードを使用して、pr_usersテーブルからIDを取得し、それをpr_notification_tableに格納しますが、カンマで区切った値をpr_notificationsテーブルに格納することはできません。私は$ notation_data ['show_users']を1,2,3,4などとして保存して、通知がこれらのIDに送られるようにします。これは、私は、テーブルイメージを添付した実行上の挿入NULL、enter image description herecodeigniterでコンマ区切りの値として配列を取得する

pr_notificationsテーブルは以下の通りである:

enter image description here

マイコントローラコード:

if($data['rows'][0]['last_status'] == 'Accepted') 
 
\t \t \t { 
 
\t \t \t \t $ids= '22'; 
 
\t \t \t $data['success_message'] = $this->exit_common->send_notification_to_all_roles($ids); 
 
\t \t \t echo "Success"; 
 
\t \t \t 
 
\t \t \t }

私のモデルコード:

function send_notification_to_all_roles($ids) 
 
\t \t { 
 
\t \t \t 
 
\t \t \t global $USER; 
 
\t \t \t $post_arr = $this->input->post(); 
 
\t \t \t $this->db->select('g.*,id'); 
 
\t \t $this->db->from('pr_users as g'); 
 
\t \t $this->db->where('userroleid', $ids); 
 
\t \t //$this->db->join($this->myTables['pr_users_details'].' as ud','ud.userid = g.userid'); 
 
\t \t //$this->db->join('pr_users_details as ud','ud.userid = g.userids'); 
 
\t \t 
 
\t /* \t $this->db->join($this->myTables['users_details'].' as ud','ud.userid = g.userid'); 
 
\t \t $this->db->join('pr_resignation_type as gt','gt.id = g.sr_type');*/ 
 
\t \t $query=$this->db->get(); \t 
 
\t \t 
 
\t \t $return \t = $query->result_array(); 
 
\t \t $arr = explode(',',$return); 
 
\t \t foreach($arr as $num) 
 
\t \t { 
 
\t \t \t echo $num."<br>"; 
 
\t \t \t } 
 
\t \t print_r($num); 
 
\t \t die; 
 
\t \t 
 
\t \t \t $manager_id = $this->get_value_by_id('managerid','users',$this->session->userdata('admin_id')); 
 
\t \t \t $user_id='1'; 
 
\t \t \t \t \t $v_memberid = $manager_id . "," . $user_id; 
 
\t \t \t \t \t \t //$manager_id = $this->get_value_by_id('managerid','users',$this->session->userdata('admin_id')); 
 
\t \t \t \t \t $notification_data['ref_table'] \t \t \t = \t 'pr_resignation_requests'; \t 
 
\t \t \t \t \t $notification_data['ref_id'] \t \t \t = \t '1'; 
 
\t \t \t \t \t $notification_data['modifier_id'] \t \t = \t $USER->id; 
 
\t \t \t \t \t $notification_data['show_users'] \t \t = \t $num; 
 
\t \t \t \t \t $notification_data['notification_descr']= \t "A new Job has been created" ;//$manager_id; 
 
\t \t \t \t \t $notification_data['notification_text'] \t = \t "A new Job has been created"; 
 
\t \t \t \t \t $notification_data['added_on'] \t \t \t = \t date("Y-m-d H:i:s"); 
 
\t \t \t \t \t $notification_data['url'] \t \t \t \t = \t 'exits'; 
 
\t \t \t \t \t $notification_data['uurl'] \t \t \t \t = \t 'exits'; 
 
\t \t \t \t \t $this->db->insert($this->myTables['notifications'],$notification_data); 
 
\t \t \t \t \t return 'Resignation Request submitted successfully'; 
 
\t \t }

+0

カラムのデータ型を確認し、varcharとして設定してください。 –

+0

がvarcharに変更されました\t その挿入配列配列配列配列 – shank

+0

あなたのprint_r($ num)は何ですか;戻る? –

答えて

4

私はあなたがpr_usersテーブルからnotification_idを取得するために持っていると思うし、次にあなたの通知IDの配列があるよりもGET notification_idコンマseprated.Assumeために、次のコードを使用します - $user_notification_ids_info は今、このコードで行きます。

$ids = ''; $notification_ids = ''; 
for($i=0; $i<count($user_notification_ids_info); $i++) 
{ 
$ids = $user_notification_ids_info[$i]['notification_id']; 
$notification_ids.= $ids.", "; 
} 
$notification_ids = substr(trim($notification_ids), 0, -1); 

単純にecho $notification_ids;あなたのカンマ区切りの通知IDを返します。 これはあなたがこれを試すのに役立ちます。

0

あなたは$ IDSカンマ区切りを保存したいですか? implode()を使用します。

$ arr = array( 'Hello'、 'World!'、 'Beautiful'、 'Day!'); echo implode( "、"、$ arr);

こちらがお役に立てば幸いです。

+0

その挿入アレイアレイアレイアレイ – shank

関連する問題