2013-03-31 1 views
1

В настоящее время у меня есть внешний ключ thirdsmcontent_id значение, теперь я хочу, чтобы получить значениеCodeIgniter: не удалось получить данные с помощью присоединиться

thirdsubmenu_name из thirdmenu таблицы, submenu_name из submenu таблицы, menu_name из mainmenu таблицы.

Пожалуйста, помогите мне решить эту проблему. Я пробовал под кодом, но мой код модели неправильный. он не отображает мои данные

Моя таблица базы данных Структура

1)Table: mainmenu 
    --------------- 
    mainmenu_id PK(primary key) 
    menu_name  ..... 

    2)Table: submenu 
    ------------------- 
    submenu_id  PK 
    mainmenu_id FK (foreign key refrences mainmenu table) 
    submenu_name ..... 


    3)Table: thirdsubmenu 
    -------------------- 
     thirdsubmenu_id  PK 
     submenu_id   FK (foreign key refrences submenu table) 
     thirdsubmenu_name  ........ 


    4)Table: thirdsmcontentdetails 
    -------------------- 
     thirdsmcontent_id PK 
     thirdsubmenu_id  FK (foreign key refrences thirdsubmenu table) 
     content    ...... 

В Мой контроллер

$thirdsubmenu_id = $this->uri->segment(4); 

    $data['main_menuname'] = $this->thirdsmcontentdetailsmodel->getMainMenuNameOfSubmenu($thirdsubmenu_id); 

В моей модели

//---------------------------get Main Menu Name by Menu id----------------------------------- 
function getMainMenuNameOfSubmenu($thirdsubmenu_id) 
    {  
     $this->load->database(); 
     $query = $this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id')->get_where('thirdsubmenu',array('thirdsubmenu_id'=>$thirdsubmenu_id)); 
     return $query->row('menu_name'); 
    } 

Получение ошибки:

A Database Error Occurred 

    Error Number: 1066 

    Not unique table/alias: 'thirdsubmenu' 

    SELECT * FROM (`thirdsubmenu`) JOIN `thirdsubmenu` ON `thirdsubmenu`.`submenu_id` = `thirdsmcontentdetails`.`submenu_id` WHERE `thirdsubmenu_id` = '1' 

    Filename: D:\xampp\htdocs\system\database\DB_driver.php 

    Line Number: 330 
+0

Я думаю, что вы используете неправильную таблицу в списке здесь. –

+0

@ KishorSubedi вы можете отправить ответ на мою проблему. R u nepali? –

+0

Да, я. Хорошо, я отправлю свой ответ. –

ответ

1

Вы определяете как FROM и JOIN как thirdsubmenu, что не представляется возможным, и не имеет никакого смысла. Либо использование:

$this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id'); 
$query = $this->db->get_where('thirdsmcontentdetails',array('thirdsubmenu_id'=>$thirdsubmenu_id)); 

Или:

$this->db->from('thirdsmcontentdetails'); 
$this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id') 
$this->db->where(array('thirdsubmenu_id'=>$thirdsubmenu_id)); 
$query = $this->db->get(); 

Посмотрите на CI documentation, чтобы увидеть, как вы должны определить объединения.

Смежные вопросы