Обнаружена ошибка PHP - Code Igniter - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь извлечь данные из моей базы данных в таблицу данных с заголовками таблицы «Общее количество студентов | Мужчин | Женщин»

Это ошибка, которую она показала

Серьезность: Уведомление

Сообщение: неопределенное свойство: stdClass :: $ totalcount

Имя файла: pages / studentgender.php

Номер строки: 20

Обратный след:

Файл: C: \ xampp \ htdocs \ libsystem \ application \ views \ pages \ studentgender.php Строка: 20 Функция: _error_handler

Файл: C: \ xampp \ htdocs \ libsystem\ application \ controllers \ Students.php Строка: 30 Функция: просмотр

Это моя модель

public function studentCountGender(){
    $this->db->select('studgender, COUNT(*) as totalcount, COUNT(   case when studgender = "Male" then 1 else 0 end)
                        AS malecount, COUNT(    case when studgender = "Female" then 1 else 0 end) AS femalecount');
    $this->db->from('student');
    $query = $this->db->get();
    return $query->result();
}
}

Это мой контроллер

 public function studentList(){

    $this->load->model('student_model');
    $data['result'] = $this->student_model->studentCountGender();
    $this->load->view('templates/header');
    $this->load->view('templates/sidebar');
    $this->load->view('pages/studentgender', $data);
}

Этомой взгляд

    <thead>
        <tr>
          <th>Total No. of Students</th>
            <th>Total Number of Males</th>
            <th>Total Number of Females</th>
        </tr>
    </thead>
    <tbody> 
    <?php
    foreach($sample as $item){
      echo '<tr>
        <td>'.$item->totalcount.'</td>
        <td>'.$item->malecount.'</td>
        <td>'.$item->femalecount.'</td>
      </tr>
    </tbody>
    ';}?>
</table>
            </div>
        </div>
    </div>
</div>

Может кто-нибудь помочь мне, как разобрать это, и это не покажет ошибку?Я пытался отладить это в течение 2 часов, и это сводит меня с ума, большое спасибо !!!

Ответы [ 5 ]

0 голосов
/ 24 мая 2018

Попробуйте, это будет работать для вас.

Ваш контроллер:

public function __construct()
{
  parent::__construct();
  $this->load->model('student_model');
}

public function studentList(){
    $data = [];
    $data['result'] = $this->student_model->studentCountGender();
    $this->load->view('templates/header');
    $this->load->view('templates/sidebar');
    $this->load->view('pages/studentgender', $data);
}

Ваша модель:

<?
public function studentCountGender(){
    $this->db->select('studgender, COUNT(*) as totalcount, COUNT(   case when studgender = "Male" then 1 else 0 end)
                        AS malecount, COUNT(    case when studgender = "Female" then 1 else 0 end) AS femalecount');
    $this->db->from('student');
    $query = $this->db->get();
    return $query->result();
}

Ваш взгляд:

foreach($result as $item){
      echo '<tr>
        <td>'.$item->totalcount.'</td>
        <td>'.$item->malecount.'</td>
        <td>'.$item->femalecount.'</td>
      </tr>
    </tbody>
    }

Привет!

0 голосов
/ 24 мая 2018

Пожалуйста, попробуйте следующий код, надеюсь, это поможет вам.если вы не получили результат или передали $ data в неверном виде, пожалуйста, проверьте соответственно.

<?php 
    if(isset($result)&& !empty($result)){
            foreach($result as $item){
              echo "<tr>
                 <td>".$item->totalcount."</td>
                  <td>".$item->malecount;"</td>
                 <td>".$item->femalecount."</td>
                </tr>";
            }
    }
        ?>
0 голосов
/ 24 мая 2018

Вы передаете $data['result'] в представление, тогда как вы получите результат в $sample как $item в foreach.Пожалуйста, проверьте еще раз.

0 голосов
/ 24 мая 2018

Попробуйте этот код один раз.

<?php
    foreach($result as $item){
      echo "<tr>
         <td>{$item->totalcount}</td>
          <td>{$item->malecount}</td>
         <td>{$item->femalecount}</td>
        </tr>";
    }
?>
0 голосов
/ 24 мая 2018

По вашему мнению, используйте $ result, а не $ sample. Надеюсь, это сработает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...