Я хочу индивидуальный подсчет для каждого пользователя в codeigniter

Я пытаюсь показать количество всех кандидатов для каждого пользователя. Но это показывает только общее количество. Как показать индивидуальное количество каждого пользователя, которого они загрузили кандидатов. Помогите решить эту проблему .. я имею в виду, я хочу запрос точный … Спасибо Заранее следует пользовательский контроллер

Контроллер пользователя:

function manage(){
$userId = $this->phpsession->get("userId");
$userType = $this->phpsession->get('userType');
$date = date("Y-m-d");
if(!$userId && !$this->phpsession->get("userType")){
redirect(base_url());
}

$options['join'] = true;
$data['users'] = $this->user_model->GetUser($options);
$data['totalprofile'] = $this->candidate_model->GetCandidate(array("count"=>true));
$data['page_title']="User Details";

$this->layout->view("user/manage",$data);
}

Модель кандидата:

function GetCandidate($options = array()) {
if(isset($options['candidateId']))
$this->db->where('candidateId',$options['candidateId']);

if(isset($options['userId']))
$this->db->where('canUserId',$options['userId']);

if(isset($options['userBranch']))
$this->db->where('canUserBranch',$options['userBranch']);

if(isset($options['candidateFname']))
$this->db->where('candidateFname',$options['candidateFname']);

if(isset($options['candidateMname']))
$this->db->where('candidateMname',$options['candidateMname']);

if(isset($options['candidateLname']))
$this->db->where('candidateLname',$options['candidateLname']);

if(isset($options['candClient']))
$this->db->where('candClient',$options['candClient']);

if(isset($options['candRequirement']))
$this->db->where('candRequirement',$options['candRequirement']);if(isset($options['activateddate']))
$this->db->where('activateddate',$options['activateddate']);

if(isset($options['limit']) && isset($options['offset']))
$this->db->limit($options['limit'], $options['offset']);
else if(isset($options['limit']))
$this->db->limit($options['limit']);

if(isset($options['join']) ){
$this->db->select('can . * ,c.clientName,r.requirementName,r.designation,u.userName,u.userMName,u.userLName');
$this->db->from('candidates as can');
$this->db->join('clients as c','can.candClient=c.clientId ');
$this->db->join('requirement as r','r.requirementId=can.candRequirement');
$this->db->join('users as u','can.canUserId=u.userId ');
$this->db->order_by("candidateId", "desc");
$query = $this->db->get();

if(@$options['candidateId']) return $query->row(0);
return $query->result();
}
$this->db->order_by("candidateId", "desc");

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

if(isset($options['count'])) return $query->num_rows();

if(@$options['candidateId']) return $query->row(0);

return $query->result();

}

Вид пользователя:

<th style="width: 5px">UID</th>
<td><?php echo $totalprofile; ?>

0

Решение

$this->db->order_by("candidateId", "desc");
// Add a Where condition to get results only for selected user
$this->db->where('UserId', XXXXX);
$query = $this->db->get('candidates');

Добавление условия where должно приводить только к строкам для этого пользователя.

0

Другие решения

Следующий код может быть полезным. Я не написал полный код, просто написал необходимый код.

Код в контроллере —

function manage(){
$options['join'] = true;
$data['users'] = $this->user_model->GetUser($options);
$data['totalprofile'] = $this->candidate_model->GetCandidate(array("count"=>true));
}

Поскольку вы не написали код для функции «GetUser», я предполагаю, что она получит некоторый массив. Давайте сохраним его в $ options.

Код в модели —

function GetCandidate($options){
$can = array();
foreach($options as $key => $value){
$conditions = array('canUserId'=>$value['userId'], 'canUserBranch'=> $value['userBranch']);  // put the array of conditions
$this->db->select('*');
$this->db->from('candidates');
$this->db->where(array('', $conditions));
$can[$value['userId']] = $this->db->get()->num_rows(); // use userId as key here as you will be able to access the count array element in view page using this keys
}
return $can;
}

код в поле зрения —

foreach($users as $key => $value){
echo "User Id: "$value['userId'].", Candidate Count per user: ". $totalprofile[$value['userId']];
}

Просто используйте приведенный выше код и дайте мне знать ваши отзывы.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector