Я пытаюсь показать количество всех кандидатов для каждого пользователя. Но это показывает только общее количество. Как показать индивидуальное количество каждого пользователя, которого они загрузили кандидатов. Помогите решить эту проблему .. я имею в виду, я хочу запрос точный … Спасибо Заранее следует пользовательский контроллер
Контроллер пользователя:
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; ?>
$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 должно приводить только к строкам для этого пользователя.
Следующий код может быть полезным. Я не написал полный код, просто написал необходимый код.
Код в контроллере —
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']];
}
Просто используйте приведенный выше код и дайте мне знать ваши отзывы.