我想在我的项目中打印一些记录的数量,我尝试使用一些代码,但没有结果给出任何人都可以找出错误。
控制器
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);
}
模型
public function c_count($sess)
{
$query =$this->db->query("SELECT COUNT(`product_id`) FROM `cart` WHERE `username`='$sess'");
return $query;
}
查看
<?php foreach($count as $count){echo $count;}?>
答案 0 :(得分:4)
我使用count
和where
查看您的查询。这意味着您只需选择1行数据即可。
username COUNT(product_id)
admin 3
返回数据只有一行,因此您可以使用row()
这样的return $query->row()
返回数据。
模型:为1行数据返回您的数据默认值row()
。
public function c_count($sess)
{
$query = $this->db->query("SELECT COUNT(product_id) as count_id
FROM cart
WHERE username = '$sess'");
return $query->row();
}
控制器:在此处调用您的数据。
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);
}
观看次数以下是使用<span>
调用数据的方法。
<span>Admin total product : <?php echo $count; ?> Products</span>
有很多方法可以从数据库中调用返回的数据 您也可以在视图中使用
<?php echo $query->count_id; ?>
,而无需在控制器中将其设置为$data['count']
。你现在可以试试。 :)希望这有帮助。注意:如果您要调用多个数据,请不要使用
where
,而是使用group by
。我想给你一个例子,但问题与你的问题不同。 :)如果有任何错别字,请告诉我,我会解决它。
答案 1 :(得分:1)
$query =$this->db->query("SELECT COUNT(`product_id`) AS count FROM `cart` WHERE
`username`='$sess'");
答案 2 :(得分:0)
将查询更改为
$query =$this->db->query("SELECT COUNT(`product_id`) as count FROM `cart` WHERE `username`='$sess'");
$query->result()
将返回对象数组
在视图中,您将获得可以使用的对象
<?php foreach($count as $count){echo $count->count;}?>
或
<?php echo $count[0]->count?>
答案 3 :(得分:0)
问题在于您的模型类,您可以在其中获取行数。 实际上,在CodeIgniter中,结果集获取与DB表的列匹配的内容。例如。声明
modal-opened
将返回类似这样的结果集
$query =$this->db->query("SELECT COUNT(`product_id`) FROM `cart` WHERE `username`='$sess'");
当您尝试使用此行Array ( [0] => stdClass Object ( [COUNT(`product_id`)] => 60 ) )
显示结果时
你得到错误,因为你要求显示$ count数组的$ count数据变量,这是不存在的。
在没有太多代码更改的情况下解决此问题的一个简单方法是在查询中使用别名。只需将查询更改为此
<?php foreach($count as $count){echo $count;}?>
并在视图中以$query =$this->db->query("SELECT COUNT(`product_id`) as 'nums' FROM `products` WHERE `service_id`='$sess'");
但是,在我看来,最好使用CI的内置函数<?php foreach($count as $c){echo $c->nums;}?>
。
答案 4 :(得分:0)
获得结果后,只需使用PHP count()
函数
<强> CONTROLLER 强>
function cart_count()
{
$sess = $this->session->userdata('SESS_USER');
$query = $this->product_model->c_count($sess);
$data['count'] = count($query->result());
$query = $this->db->get("cart");
$data['records'] = $query->result();
$this->load->view('frontend/menu',$data);
}