У меня есть две таблицы: events_archive и report. Таблица событий показывает всю информацию о событии, включая ref_id
(который является уникальным идентификатором для этого события), demo_id
(идентификатор пользователя демо, принявшего участие в событии) и client_id
(пользователь Идентификатор клиента, который участвовал в мероприятии). В таблице отчетов есть столбец event_ref
, который соответствует событию ref_id
.
Я пытаюсь заставить CodeIgniter показывать все отчеты для определенного пользователя на странице. Я хочу, чтобы отчеты отображали только те события, в которых участвовал пользователь (то есть события, которые имеют значение demo_id
или client_id
, равное значению в идентификаторе сеанса пользователя).
Вот код, который я использую в модели:
function get_reports($user_id,$type,$limit,$offset){
$this->db->select('*');
$this->db->from('reports');
$this->db->join('events_archive','events_archive.ref_id = reports.event_ref AND events_archive.'.$type.'_id = '.$user_id);
$this->db->limit($limit,$offset);
$reports = $this->db->get();
if($reports->num_rows()>0){
foreach($reports->result() as $report){
$this->table->add_row( $report->id );
}
}
$this->table->set_heading('ID');
return $this->table->generate();
}
Но он просто перечисляет 2 снова и снова (я думаю, 2 - это идентификатор отчета, который он нашел). Должен указывать идентификатор отчета в пошаговом режиме. Как ни странно, он перечисляется 16 раз (и есть 16 отчетов, которые соответствуют критериям для отображения). Что-то не так с JOIN или петлей. Я думаю, что это СОЕДИНЕНИЕ. Кто-нибудь знает, где я иду не так?