【问题标题】:Undefined variable: total_user in codeigniter未定义变量:codeigniter 中的 total_user
【发布时间】:2019-10-12 07:53:48
【问题描述】:

我尝试在 codeigniter 中使用 num_row() 计算 manajemen_user 表中的数据量。

这是我的桌子(manajemen_user):

id|nama|username|email|password|jabatan
1|Admin|admin|admin@gmail.com|123|Administrator

这里是我的控制器:

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Statistik extends CI_Controller
{
    public function index()
    {
        //load model
        $this->load->model('statistik_model');
        $data = array();
        $data['jumlah_user'] = $this->statistik_model->total_rows();

        //load view
        $this->load->view('backend/index',$data);
    }
}

这是我的模型

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Statistik_model extends CI_Model
{
    function total_rows() {
        $query = $this->db->get('manajemen_user');
        return $query->num_rows();
  }
}

这是我的观点:

<div class="col-lg-3 col-xs-6">
          <?php foreach ($jumlah_user as $total_user):?>
          <!-- small box -->
          <div class="small-box bg-yellow">
            <div class="inner">
              <h3><?php echo $total_user ?></h3>

              <p>Jumlah User</p>
            </div>
            <div class="icon">
              <i class="ion ion-person-add"></i>
            </div>
            <a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
          </div>
          <?php endforeach; ?>
        </div>

但我认为有这样的错误。

消息:未定义变量:jumlah_user

消息:为 foreach() 提供的参数无效

我不知道错在哪里。抱歉,我是 codeigniter 的新手。谁能帮我?谢谢。

【问题讨论】:

  • 你确定你在manajemen_user表中有一些记录吗?我认为您必须检查 $jumlah_user is_array 然后在 foreach 中使用它。
  • 使用 $query->result();获取所有查询结果。

标签: php codeigniter


【解决方案1】:

控制器

function index() {
    //load model
    $this -> load -> model('statistik_model');
    $data = array();
    $data['jumlah_user'] = $this -> statistik_model -> total_rows();

    //load view
    $this -> load -> view('backend/index', $data);
}

型号

class Statistik_model extends CI_Model
{
    function total_rows() {
        $this-> db -> select("count(id) as total_count")->get('manajemen_user')->row()->total_count;
  }
}

查看

<div class="col-lg-3 col-xs-6">

          <!-- small box -->
          <div class="small-box bg-yellow">
            <div class="inner">
              <h3><?php echo $jumlah_user ?></h3>

              <p>Jumlah User</p>
            </div>
            <div class="icon">
              <i class="ion ion-person-add"></i>
            </div>
            <a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
          </div>

        </div>

【讨论】:

  • 你在 $jumlah_user 变量中犯了一个错误,因为 $jumlah_user 有数值而不是结果数组。
【解决方案2】:

无需使用 foreach。只需使用

echo $jumlah_user

在 Codeigniter 中,如果您传递的数据库结果集包含多条记录,则需要使用 foreach 逐行获取数据。

foreach(return_data->result() as $result){
  echo $result->column_name;
}

如果只有一条记录,可以如下访问。

echo $return_data->row()->column_name

如果您从控制器返回单个值到视图,您可以通过变量名直接访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多