CodeIgniter Many-to-Many Relationship Management

限于喜欢 提交于 2019-11-29 08:58:41
Donny Kurnia

I'd like to share what I do in my application. This is basically same with my answer in this question.

  1. After user submit, and before entering to database, I will fetch the existing data in the database into an array. Example: $collection = array('111', '112', '113', '114'); (This is just for example. In real, it should fetch from database then put the value to array)
  2. I will check the new user input in two step. First step is to see if it already in the database or not. If it not, then insert. Otherwise ignore:
    foreach ( $inputs as $input )
    {
      if ( ! in_array($input, $collection) )
      {
        //do insert here
      }
    }

Then in second loop, I do it in reverse, to delete the data that not selected by user.

foreach ( $collection as $data )
{
  if ( ! in_array($data, $inputs) )
  {
    //do delete here
  }
}

In your case, you might or might not need the second loop. I needed this since I make the input as checkboxes, that the user can choose to activate / deactivate, thus I translate it as insert and delete.

Since you will implement it using multi-select, then basically it's same with my checkboxes.

If you have structure or code example, feel free to share it, and I will help you fine tune it (of course with my style, that might or might not optimized yet).

This website has some tutorials for many to many. It uses doctrine though.

http://www.phpandstuff.com/articles/category/tutorials

The codeigniter from scratch series will cover almost anything you want to know about the framework

http://net.tutsplus.com/videos/screencasts/codeigniter-from-scratch-day-1/

hope that helps. there are 7 to date btw

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!