Получить все имя из таблицы 1, где идентификатор (разделенный запятой) из таблицы 2 - Ignited Datatables на стороне сервера с использованием Codeigniter - PullRequest
0 голосов
/ 24 сентября 2019

Я застрял с моим кодом.Если вы знаете об этом, пожалуйста, ответьте на этот вопрос, потому что мне очень нужна ваша помощь.

У меня есть 2 таблицы (заявка и инспектор).

Поле заявки:

offer_id, offer_name, surveyor_proposal

Пример строки: ('1', 'это имя заявки', '3,18,22')

Как видите, этоиметь 3 идентификатора геодезиста, разделенных запятой)

Поле Surveyor:

surveyor_id, surveyor_name

Пример строки:

  1. ('3', 'Randy')
  2. ('18', 'Bella')
  3. ('22', 'Zidan')

!вот оно, я хочу распечатать Рэнди, Беллу и Зидана в таблице представлений

Model.php:

function get_all_datatables($x) {
    $this->datatables->select('proposal_name, surveyor_name');
    $this->datatables->from('proposal');
    $this->datatables->join('surveyor','surveyor_id = surveyor_proposal','left');
    return $this->datatables->generate();
}

Controller.php:

function get_data_json($x) { //get product data and encode to be JSON object
    header('Content-Type: application/json');
    echo $this->m_bl->get_all_datatables($x);
}

View.php:

   $("#table").dataTable({
      initComplete: function() {
          var api = this.api();
          $('#table_filter input')
              .off('.DT')
              .on('input.DT', function() {
                  api.search(this.value).draw();
          });
      },
          oLanguage: {
          sProcessing: "loading..."
      },
      processing: true,
      serverSide: true,
      ajax: {"url": "<?= base_url('dashboard/bl/get_data_json/'.$uri); ?>", "type": "POST"},
          {"data": "proposal_name"},
          {"data": "surveyor_name"},

      rowCallback: function(row, data, iDisplayIndex) {
          var info = this.fnPagingInfo();
          var page = info.iPage;
          var length = info.iLength;
          $('td:eq(0)', row).html();
      }
  });

Обновление!

Я былдобавить 1 соединение таблицы, поля:

offer_id_junction, surveyor_id_junction

Пример значения:

  1. ('1', '3') -> как Рэнди
  2. ('1', '18') -> как Белла
  3. ('1', '22') -> как Зидан

И я обновляю присоединение к моей таблице:

$this->datatables->join('junction','proposal_id_junction = proposal_id','left');
$this->datatables->join('surveyor','surveyor_id = surveyor_id_junction','left');

Но это показывает то же самое предложение и другое имя геодезиста, например:

'это название предложения', 'Randy'

'это имя предложения', 'Bella'

'это название предложения', 'Zidan'

Я хочу, чтобы это было просмотромкак это:

'это название предложения', 'Рэнди, Белла, Зидан'

Пожалуйста, помогите.

...