2017-07-26 15 views
1

コード:このコードでcodeigniterのupdateでconcat関数を使用する方法は?

if($this->input->post('submit')) 
{ 

    $data = array(
      'admin_id' => $this->input->post('admin'), 
      ); 
    $this->db->select('*'); 
    $this->db->from('assign_menu_admin'); 
    $query = $this->db->get(); 
    $result = $query->result_array(); 
    foreach ($result as $row) 
    { 
     $where = "menu_link = '".$row['menu_link']."'"; 
     $this->db->where($where); 
     $this->db->set('admin_id', "CONCAT(admin_id,',','".$data."')", FALSE); 
     $query = $this->db->update('assign_menu_admin'); 
     echo $this->db->last_query(); 
    } 
} 

私はその中に名前assign_menu_adminとADMIN_ID名前列を持つテーブルを持っています。今、私はこの1,2,3,4のように私のadmin_idを表示するために、concat関数を使用したいが、それはエラーを表示します。このエラーを修正するにはどうしたらいいですか?

enter image description here

はあなたが

+0

問題は、しかし、' $からのdata'が配列されて:この行で

$this->db->set('admin_id', "CONCAT(admin_id,',','".$data."')", FALSE); 

は、この行を置き換えます。それを文字列に変換する必要があります。 – roberto06

答えて

0

変更このライン

$this->db->set('admin_id', "CONCAT(admin_id,',','".$data['admin_id']."')", FALSE); 
0

あなたは下記の解決策を見つけることができますありがとうございました。

あなたはPHPからデータベースにデータを渡しているので、implode()機能を使用することができます。

構文

破(セパレータ、アレイ)

パラメータ

separator: Optional. Specifies what to put between the array elements. Default is "" (an empty string) 
array : Required. The array to join to a string 

ソリューション

$this->db->set('admin_id', implode(',',$this->input->post('admin'))); 

動作しない場合は教えてください。

$this->db->set('admin_id', implode(",", $data)), FALSE); 

これは、一緒にCOMMAの文字で各列の値を接着し、文字列を返します。

0

implode()機能を使用してください。

出力されます:

$this->db->set('admin_id', '1,2,3,4', FALSE); 
0

また、あなたはしなければならないものを簡素化することができます:あなたが連結に入れている

//columns with data you are updating 
    $data = [ 
     //use php implode function to turn an array into a string with each item separated by a "," 
     'admin_id'=>implode(',', $this->input->post('admin')) 
    ]; 

    //you can also cast an array of where statements as well 
    $this->db->where('menu_link', $row['menu_link']) 
    //table to update, followed by columns and data you are updating 
    ->update('assign_menu_admin', $data); 
+0

エラーを表示する@Parker Dell last_queryをエコーし​​たときに更新する 'assign_menu_admin'''set' 'admin_id' = 'CONCAT(admin_id、\'、\ '、\' Array \ ')'' menu_link' = 'admins/college、admins /管理する ' – omkara

0

$dataarrayであり、そのようなユーザー配列はできません。 MySQLの `CONCAT`関数から来ない

$this->db->set('admin_id', "CONCAT(admin_id,',','".$data['admin_id']."')", FALSE); 
関連する問題