Соедините 3 таблицы с codeigniter и отобразите его

0

Я хочу создать базу данных соединения. в таблице "отношения" будет показано "заболевание", которое может добавить много "симптомов". Как я должен это делать?

Вот моя база данных:

болезнь: id_disease, имя, реквизиты
симптомы: id_symptoms, имя, реквизиты
Отношение: id_relation, id_disease, id_symptoms

и вот моя модель

function get_allrelation() {
    $this->db->select('*');
    $this->db->from('relation');
    $this->db->join('disease','disease.id_disease = relastion.id_disease','left');
    $this->db->join('symptoms','symptoms.id_symptoms= relation.id_symptoms','left');

    $query = $this->db->get();
        return $query->result();
    }
}

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

Теги:
codeigniter
join

2 ответа

0
Лучший ответ

Контроллер, приведенный ниже, является примером только в выборе $this->db->select('relation.*, disease.*, symptoms.*');

В контроллере вы можете передать данные в представление, чтобы создать цикл foreach в представлении.

<?php

class Somecontroller extends CI_Controller {

    public function index() {

        $data['allrelation'] = $this->allrelation();


        $this->load->view('example', $data);

    }

    function get_allrelation() {
        $this->db->select('relation.*, disease.*, symptoms.*');
        $this->db->from('relation');
        $this->db->join('disease','disease.id_disease = relastion.id_disease','left');
        $this->db->join('symptoms','symptoms.id_symptoms = relation.id_symptoms','left');

        $query = $this->db->get();

        if ($query->num_rows() > 0) {
            return $query->result();
        }

        return false
    }

}
  • 0
    хорошо, я попытаюсь.
  • 1
    relation.*, disease.*, symptoms.* использование * в Select может привести к неоднозначной ошибке столбца в будущем. Так что лучше указывать имя столбца вместо *
Показать ещё 1 комментарий
1

У вас была опечатка: вместо отношения вы имели relastion.id_disease.

Код ниже должен работать

function get_allrelation() {
  $this->db->select('*');
  $this->db->from('relation');
  $this->db->join('disease','disease.id_disease = relation.id_disease','left');
  $this->db->join('symptoms','symptoms.id_symptoms= relation.id_symptoms','left');

  $query = $this->db->get();
  return $query->result();
}
  • 0
    Я знаю, что это работает. но я не смог добавить данные о болезни. данные пусты
  • 0
    какие данные у вас есть в таблицах? Также может быть вероятность того, что симптомы остаются в соединении с болезнью, а не с симптомами.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню