2016-11-20 2 views
-2

У меня есть следующая таблицаГраф и отображение результата в зависимости от типа в CodeIgniter

|id|user_type| 
|1|Customers| 
|2|Suppliers| 
|3|Customers| 
|4|Suppliers| 
|5|Suppliers| 
|6|Employees| 

Я хочу подсчитать общее количество клиентов, поставщиков, employess

  • Клиенты (2)
  • Поставщики (3)
  • Сотрудники (1)
  • Вот мой HTML

     <a href="#" class="customers list-group-item"> 
          <span class="badge badge-info"> 
           2 
          </span> 
          Customers 
         </a> 
         <a href="#" class="employees list-group-item"> 
          <span class="badge badge-danger"> 
           3    
          </span> 
          Employees   
         </a> 
         <a href="#" class="suppliers list-group-item"> 
          <span class="badge badge-success"> 
           1    
           </span> 
          Suppliers   
         </a> 
    

    Мой код запроса выглядеть следующим образом

     <?php 
           $this->load->model("User_model"); 
           $query = $this->db->query('SELECT user_type, COUNT(Customers) AS total FROM `users` GROUP BY user_type'); 
    
         if ($query->num_rows() > 0) 
        foreach ($query->result() as $row) 
         $data['users'] = array(
          'total' => $row->total, 
         ); 
    
    echo $data['users']; 
    

    Этот код не работает. Спасибо за ваше время.

    +0

    '$ data ['users']' перезаписывается на каждой итерации. –

    ответ

    1

    Ваша переменная $data['users'] перезаписывается на каждой итерации foreach. Что нужно сделать - это добавить новый товар в $data['users']. Добавление в массив выполняется с помощью []:

    foreach ($query->result() as $row) { 
        $data['users'][] = array(
         'type_name' => $row->user_type, 
         'total' => $row->total, 
        ); 
    } 
    
    // `echo` will no work with `arrays`, use `print_r` instead 
    print_r($data['users']); 
    
    +0

    Сэр, я получаю сообщение об ошибке базы данных errorA Происходило Номер ошибки: 1054 Неизвестный столбец 'Клиенты' в 'списке поля' SELECT, user_type, COUNT (Customers) AS jobcount FROM 'users' GROUP BY user_type – TPLMedia24

    +0

    Ваш столбец имя 'user_type', так что это' COUNT (user_type) как total', будьте осторожны. –

    +0

    Я не хочу считать user_type, но хочу подсчитывать столбцы клиентов, поставщиков и сотрудников – TPLMedia24

    Смежные вопросы