如何在这段代码中显示每个科室的医生人数?

问题描述 投票:0回答:1

我在数据库中有一个表,我将其命名为“部门”,还有另一个表,我将其命名为“医生”。我计划显示每个科室的医生人数。但是当我尝试显示它们时,即使部门包含医生,我总是得到结果 0。这是部门表:

CREATE TABLE `department` ( `id` int(10) NOT NULL, `name` varchar(100) CHARACTER SET utf8 DEFAULT NULL, `description` varchar(1000) CHARACTER SET utf8 DEFAULT NULL, `x` varchar(10) CHARACTER SET utf8 DEFAULT NULL, `y` varchar(10) CHARACTER SET utf8 DEFAULT NULL, `hospital_id` varchar(100) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

这是医生表:``` CREATE TABLE

doctor
(
id
int(10) NOT NULL,
img_url
varchar(100) 字符集 utf8 默认为 NULL,
name
varchar(100) 字符集 utf8 默认为 NULL,
email
varchar(100) 字符集 utf8 默认为 NULL,
address
varchar(100) 字符集 utf8 默认为 NULL,
phone
varchar(100) 字符集 utf8 默认为 NULL,
department
varchar(100) 字符集 utf8 默认为 NULL,
profile
varchar(100) 字符集 utf8 默认为 NULL,
x
varchar(100) 字符集 utf8 默认为 NULL,
y
varchar(10) 字符集 utf8 默认为 NULL,
ion_user_id
varchar(100) 字符集 utf8 默认为 NULL,
hospital_id
varchar(100) 字符集 utf8 默认 NULL ) 引擎=MyISAM 默认字符集=latin1;

I put a foreign key from the department table to the doctor table as follows:
``` ALTER TABLE doctor
ADD COLUMN department_id INT,
ADD CONSTRAINT fk_department_id
FOREIGN KEY (department_id)
REFERENCES department(id); ```


Here is the function that counts the number of doctors in the department (models):
``` public function getDoctorsCountByDepartment($department_id) {
       $this->db->select('department_id, COUNT(*) as doctor_count');
       $this->db->from('doctor');
       $this->db->where('department_id', $department_id); // Filtre par ID de département
       $this->db->group_by('department_id');
       $query = $this->db->get();

       return $query->row()->doctor_count; // Retourne le nombre de médecins pour ce département
   } ```

Here is the function that retrieves the number of departments (controller): 
```  public function getDoctorsCountByDepartment() {
        $this->load->model('department_model'); 
   $departments = $this->department_model->getDepartments(); 

   foreach ($departments as $department) {
       $department->doctor_count = $this->department_model->getDoctorsCountByDepartment($department->id);
   }

   $data['departments'] = $departments;
   $this->load->view('department_view', $data);
   }```
And this is the view to display data:
``` <div class="panel-body">
               <div class="adv-table editable-table ">
                   <div class="space15"></div>
                   <table class="table table-striped table-hover table-bordered" id="editable-sample">
                       <thead class="bg-info">
                           <tr>
                               <th> <?php echo lang('name') ?></th>
                               <th> <?php echo lang('description') ?></th>
                               <th> <?php echo lang('NbreMedecins') ?></th>
                               <th class="no-print"> <?php echo lang('options') ?></th>
                           </tr>
                       </thead>
                       <tbody>
                           <?php foreach ($departments as $department) { ?>
                               <?php
                               // Initialisation de la propriété doctor_count si elle n'est pas définie
                               $department->doctor_count = $department->doctor_count ?? 0;
                               $doctors_count_by_department=array();
                               foreach ($doctors_count_by_department as $count) {
                                   if ($count->department == $department->id) {
                                       $doctor_count = $count->doctor_count;
                                       break;
                                   }
                               }
                               ?>
                               <tr class="">
                                   <td><?php echo $department->name; ?></td>
                                   <td><?php echo $department->description; ?></td>
                                   <td><?php echo $department->doctor_count; ?></td>
                                   <td class="no-print">
                                       <button type="button" class="btn btn-info btn-xs btn_width editbutton" data-toggle="modal" title="<?php echo lang('edit'); ?>" data-id="<?php echo $department->id; ?>"><i class="fa fa-edit"></i> </button>   
                                       <a class="btn btn-info btn-xs btn_width delete_button" title="<?php echo lang('delete'); ?>" href="department/delete?id=<?php echo $department->id; ?>" onclick="return confirm('Etes-vous sûr de vouloir supprimer cet élément?');"><i class="fa fa-trash-o"></i> </a>
                                   </td>
                               </tr>
                           <?php } ?>
                       </tbody>
                       
                   </table>
               </div>
           </div> ```
javascript php mysql codeigniter
1个回答
0
投票

选择部门,count(id)为

doctor_id
来自
doctor
按部门分组

应该会给你你正在寻找的结果

© www.soinside.com 2019 - 2024. All rights reserved.