在codeigniter中打印计数值

soo*_*lai 5 php codeigniter

我想在我的项目中打印一些记录的计数,我尝试使用一些代码,但没有结果给出任何人都可以找出错误.

调节器

function cart_count()
{
    $sess = $this->session->userdata('SESS_USER');
    $query = $this->product_model->c_count($sess);
    $data['count'] = $query->result();
    $query = $this->db->get("cart");
    $data['records'] = $query->result();
    $this->load->view('frontend/menu',$data);
}
Run Code Online (Sandbox Code Playgroud)

模型

public function c_count($sess)
        {
            $query =$this->db->query("SELECT COUNT(`product_id`)  FROM `cart` WHERE `username`='$sess'");
            return $query;

        }
Run Code Online (Sandbox Code Playgroud)

视图

<?php foreach($count as $count){echo $count;}?>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 4

我看到您的查询使用countwhere。这意味着您只需像这样选择 1 行数据。

username     COUNT(product_id)
  admin             3
Run Code Online (Sandbox Code Playgroud)

row()返回数据只有 1 行,因此您可以使用这样的方式返回数据return $query->row()

模型:将您的数据默认值返回为row()1 行数据。

public function c_count($sess)
{
    $query = $this->db->query("SELECT COUNT(product_id) as count_id
                               FROM cart
                               WHERE username = '$sess'");
    return $query->row();
}
Run Code Online (Sandbox Code Playgroud)

控制器:在此处调用您的数据。

function cart_count()
{
    $sess = $this->session->userdata('SESS_USER');
    $query = $this->product_model->c_count($sess);
    $data['count'] = $query->count_id; // CHANGE FROM $data['count'] = $query->result();
    // If you dont mind, I change your code :
    // $query = $this->db->get("cart");
    // $data['records'] = $query->result();
    $record = $this->db->get("cart");
    $data['records'] = $record->result();
    $this->load->view('frontend/menu',$data);
}
Run Code Online (Sandbox Code Playgroud)

视图以下是如何调用您的数据,我将使用<span>.

<span>Admin total product : <?php echo $count; ?> Products</span>
Run Code Online (Sandbox Code Playgroud)

调用数据库返回数据的方法有很多种。
您也可以<?php echo $query->count_id; ?>在视图中使用,而无需将其设置到$data['count']控制器中。你现在就可以尝试一下。:) 希望这有帮助。

注意:如果你想调用多于1个数据,不要使用where而是使用group by. 我想给你举一个例子,但这与你的问题是不同的问题。:) 如果有任何拼写错误,请告诉我,我会修复它。