2016-04-27 5 views
0

Кажется, что у меня проблема с запросом, показывающим конкретный элемент, если он находится в таблице контрольных списков. В настоящее время у меня есть несколько таблиц, основными из которых являются пользовательский, персональный, серийный, контрольный список &. Символ & Серия привязана к таблице элементов, в то время как пользователь & Элемент связан в таблице контрольных списков.Выбор пункта представления Возвращает нуль (таблица ссылок контрольного списка)

Способ, которым это работает, - если кнопка нажата на элемент, который не находится в таблице контрольного списка зарегистрированным пользователем, этот элемент будет добавлен в таблицу контрольных списков (если в контрольном списке есть кнопка удаления будет показано).

То, что я в настоящее время работу заключается в следующем:

  • Если пользователь не вошел в систему и на главной странице: Показать все элементы с X
  • Если пользователь вошел в систему и на главной страница: Показать все товары не в
    контрольный стол с X и всеми пунктами в таблице контрольных списков с
    Тик.
  • Если пользователь не вошел в систему клика посмотреть более подробную информацию по вопросу:
    Показать больше информации по этому пункту с X (отдельная страница пункт)

What I am trying to achieve now is if a user is logged in and clicks view more details, to show the individual item page with a X or Tick (Depending if in checklist table). This is kinda working as items which are in the checklist table can be selected to view the individual item page when logged in. However if the item is not in the checklist table and the user is logged in, nothing is returned back. I am at a total loss how to resolve this and am trying to avoid copying all the items into the checklist table with an additional field (Y/N).

Это запрос, я используя для получения конкретной информации элемента, если пользователь вошел в систему, в которой я использую CodeIgniter:

$this->db->select('item.item_id AS item_id, item.item_image AS item_image, line.line_name AS line_name, series.series_name AS series_name, character.character_name AS character_name, checklist.checklist_id AS checklist_id'); 
$this->db->from('item'); 
$this->db->join('line', 'item.line_id = line.line_id', 'left'); 
$this->db->join('series', 'item.series_id = series.series_id', 'left'); 
$this->db->join('character', 'item.character_id = character.character_id', 'left'); 
$this->db->join('checklist', 'checklist.item_id = item.item_id', 'left'); 
$this->db->where('checklist.users_id', $user_id); 
$this->db->or_where('checklist.users_id IS NULL'); // Also tried without this line 
$this->db->where('item.item_id', $item_id); 
$query = $this->db->get(); 
return $query->row_array(); 

Любая помощь будет действительно велика, как остальные три запроса работают как в как и выше, из Возвращения ($ query-> result_array) & добавлено or_where (checklist.users_id IS NULL).

+0

Можете ли вы изменить и выделить свой вопрос, пожалуйста? – Kisaragi

+0

Привет @ Kisaragi, обновленный с выделенным вопросом. – Jake

ответ

0

Похоже, что я нашел исправление. Я переместился туда, где ID элемента под соединением, изменил or_where к где и где в or_where. Таким образом, рабочий код выглядит следующим образом:

$this->db->select('item.item_id AS item_id, item.item_image AS item_image, line.line_name AS line_name, series.series_name AS series_name, character.character_name AS character_name, checklist.checklist_id AS checklist_id'); 
$this->db->from('item'); 
$this->db->join('line', 'item.line_id = line.line_id', 'left'); 
$this->db->join('series', 'item.series_id = series.series_id', 'left'); 
$this->db->join('character', 'item.character_id = character.character_id', 'left'); 
$this->db->join('checklist', 'checklist.item_id = item.item_id', 'left'); 
$this->db->where('item.item_id', $item_id);  
$this->db->or_where('checklist.users_id', $user_id); 
$this->db->where('checklist.users_id IS NULL');  
$query = $this->db->get(); 
return $query->row_array(); 

Не совсем уверен, что если or_where должна быть выше где, но его работы за то, что я тоже нуждался.