【问题标题】:A PHP Error was encountered - Code Igniter遇到 PHP 错误 - Codeigniter
【发布时间】:2018-05-24 17:15:51
【问题描述】:

我正在尝试将数据从我的数据库中提取到具有表标题“学生总数 | 男性 | 女性”的数据表中

这是它显示的错误

严重性:通知

消息:未定义的属性: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 个小时,这让我发疯了,非常感谢!!!

【问题讨论】:

  • 你从哪里带来$sample
  • 你能把查询结果粘贴到这里吗?
  • 将 $sample 替换为 $data['result'] 。我希望它会起作用。
  • 只要做var_dump($data),你就会明白了

标签: php codeigniter


【解决方案1】:

尝试此代码一次。

<?php
    foreach($result as $item){
      echo "<tr>
         <td>{$item->totalcount}</td>
          <td>{$item->malecount}</td>
         <td>{$item->femalecount}</td>
        </tr>";
    }
?>

【讨论】:

    【解决方案2】:

    您将$data['result'] 传递给视图,那么您如何在$sample 中获得$item 中的foreach 中的结果。请再次检查。

    【讨论】:

    • 将其更改为 $result 但显示消息:未定义变量:结果
    【解决方案3】:

    试试这个,对你有用。

    你的控制器:

    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>
        }
    

    您好!

    【讨论】:

      【解决方案4】:

      请尝试以下代码,希望对您有所帮助。可能您没有结果或以不正确的视图传递 $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>";
                  }
          }
              ?>
      

      【讨论】:

        【解决方案5】:

        在您看来,使用 $result 而不是 $sample 希望这会起作用

        【讨论】:

        • 将其更改为 $result 但显示消息:未定义变量:结果
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-31
        • 2016-11-21
        • 2016-03-07
        • 2020-06-03
        • 1970-01-01
        相关资源
        最近更新 更多