У меня есть две таблицы с записями.В первой таблице я отображаю личную информацию, а во второй таблице я добавляю подробности действий.
Теперь я пытаюсь отобразить запись с помощью объединений.Ниже приведен код, который я использую в модели
public function getMemberActivity($gotMemberId){
$getDetails = array('members.member_id'=>$gotMemberId,'member_activity.activity_status'=>1,'members.is_Approved'=>1);
$result = $this->db->where($getDetails)
->from('members')
->join('member_activity', 'members.member_id = member_activity.member_id','LEFT')
->get()
->result();
//echo $this->db->last_query();
//print_r($result);
if($result)
{
return $result;
}
else
{
return 0;
}
}
Контроллер
Примечание: здесь я получаю несколько идентификаторов, потому что у меня есть еще несколькологика.Вот почему я использую их для каждого.
$ActivityData=[];
foreach ($data['getAllMember'] as $key => $m_id) {
$ActivityData[] = $this->Access_model->getMemberActivity($m_id->member_id);
}
$data['MemberActivity'] = $ActivityData;
Теперь, если я обнаружил записи, связанные с идентификатором члена во вторичной таблице, то я получаю вывод, но если не нашел запись во второйто я получаю сообщение об ошибке Message: Invalid argument supplied for foreach()
Если я удаляю 'member_activity.activity_status'=>1
из предложения where
, тогда мой запрос на соединение работает.Я имею в виду, что я получаю записи участника.
->join('member_activity', 'members.member_id = member_activity.member_id','LEFT')
Просмотр
$SActivity=$MemberActivity;
//print_r($SActivity);
if($SActivity){
foreach ($SActivity as $sec_1) {
foreach ($sec_1 as $sec_activities) {
//list here
}
}
}
else{echo"no data availalbe";}
Итак, мой ожидаемый результат - я должен отобразить записи, если они найдены вВторая таблица, если она не найдена, также отображает записи таблицы участников.
Не могли бы вы помочь мне в этом?