[HP]中間関連テーブルデータを更新する2つの考え方
6387 ワード
--------------------------------------------------------------------------------------------------------------
中間関連テーブル:ここでの中間テーブルには、テーブル1のプライマリ・キーとテーブル2のプライマリ・キー、すなわち多対多の形式のみが格納されます.
(実行データの追加と削除はフレーム内メソッドであり、構想部分ではない)
正しくない点やより良い処理方法があれば、伝言を残して交流してください.
Link: http://www.cnblogs.com/farwish/p/3938575.html
@黒目詩人
中間関連テーブル:ここでの中間テーブルには、テーブル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
@黒目詩人