计算MYSQL DB的结果数

问题描述 投票:-1回答:4

我想知道正确的方法来计算从mysql返回的结果数。

这是我从表中获取数据的代码。

$bids = $this->db->query("SELECT bidID,listingID, listing_title, bid_date, username, vintage, starting_, bin,
amount, sold, sold_date, bid_type 
FROM bids

JOIN listings ON listingID = bid_listing
JOIN users ON list_uID = userID

ORDER BY bidID DESC");

$bids = $bids->result();
$data['bids'] = $bids;

然后我运行foreach来打印数据。例如 :

  <?$i = "0"; foreach ($bids as $l): ?> <? echo $l->listing_title;?> 

我想在列表标题后添加出价/结果的数量。

谢谢

php mysql codeigniter
4个回答
0
投票

尝试使用codeigniter活动记录

public function count() {
  $this->db->select('*');
  $this->db->from('bids');
  $this->db->join('listings', 'listings.listingID = bids.bid_listing', 'LEFT');
  $this->db->join('users', 'users.userID = listings.list_uID', 'LEFT');
  $query = $this->db->get();

  return $query->num_rows();
}

echo $this->count();

https://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data


0
投票

您可以针对您的问题尝试此解决方案:

$bids = $this->db->query("SELECT bidID,listingID, listing_title, bid_date, username, vintage, starting_, bin,
amount, sold, sold_date, bid_type 
FROM bids

JOIN listings ON listingID = bid_listing
JOIN users ON list_uID = userID

ORDER BY bidID DESC");

$bids = $bids->result();
$no_0f_bids = $bids->num_rows();
$data['bids'] = $bids;
$data['no_0f_bids'] = $no_0f_bids;

然后,您可以在视图文件中打印任何出价。

<?php  
echo "No of Bids : ".$no_0f_bids;
foreach ($bids as $l):
    echo $l->listing_title;
endforeach;
?> 

你可以访问此链接Generating codeigniter Query Results.

我希望它会有所帮助。


0
投票

你应该有$db->RecordCount()这个函数将是你想要的返回计数。


0
投票

试试这个:

$bids = $this->db->query("SELECT SQL_CALC_FOUND_ROWS bidID,listingID, listing_title, bid_date, username, vintage, starting_, bin, amount, sold, sold_date, bid_type FROM bids JOIN listings ON listingID = bid_listing JOIN users ON list_uID = userID ORDER BY bidID DESC");

$total = $this->db->query("SELECT FOUND_ROWS() as total");
$data['bids'] = $bids->result();
$data['bids_total'] = $total->row()->total;

要么

$bids = $this->db->query("SELECT  bidID,listingID, listing_title, bid_date, username, vintage, starting_, bin, amount, sold, sold_date, bid_type FROM bids JOIN listings ON listingID = bid_listing JOIN users ON list_uID = userID ORDER BY bidID DESC");

$data['bids'] = $bids->result();
$data['bids_total'] = $bids->num_rows();

要么

$data['bids_total'] = count($data['bids']);
© www.soinside.com 2019 - 2024. All rights reserved.