[HP]中間関連テーブルデータを更新する2つの考え方

6387 ワード

--------------------------------------------------------------------------------------------------------------
中間関連テーブル:ここでの中間テーブルには、テーブル1のプライマリ・キーとテーブル2のプライマリ・キー、すなわち多対多の形式のみが格納されます.
(実行データの追加と削除はフレーム内メソッドであり、構想部分ではない)
 
/*
|-----------------------------------------------------------
| : ,
|@chenwei <www.farwish.com> |-----------------------------------------------------------
*/
$res = $this->classes->classEdit($id, $data);  // if($res) {   //   $bool = $this->lesson_classes->lessonClassesDel($id);   if($bool)   {
    // ,     
foreach($lesson_ids as $val)
    {       
$arr = array('class_id'=>$id, 'lesson_id'=>$val);    //
      
$res = $this->lesson_classes->lessonClassesAdd($arr);  //     }   }   $this->show_tips(' !'); } else {   $this->show_tips(' !'); }

// : , 。

 
 
/*
|---------------------------------------------------------
| : ,
|@chenwei <www.farwish.com> |---------------------------------------------------------
*/ // :
$arr_old ( ) // :$arr_new ( ) $intersect = array_intersect($arr_old, $arr_new);   // ( , ) $result_del = array_diff($arr_old, $intersect);    // $result_add = array_diff($arr_new, $intersect);    // // if($result_add && is_array($result_add)) { foreach($result_add as $val) { $data_add = array('class_id'=>$id, 'lesson_id'=>$val);       // $bool_add = $this->lesson_classes->lessonClassesAdd($data_add);  // } } // if($result_del && is_array($result_del)) { foreach($result_del as $val) { $bool_del = $this->lesson_classes->lessonClassesDel($id, $val); // } }

if($bool_add && $bool_del)
{
  $this->show_tips(' !');
}
else
{
  $this->show_tips(' !');
}


// : , ,

 
正しくない点やより良い処理方法があれば、伝言を残して交流してください.
 
Link: http://www.cnblogs.com/farwish/p/3938575.html
@黒目詩人