我想知道正确的方法来计算从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;?>
我想在列表标题后添加出价/结果的数量。
谢谢
尝试使用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
您可以针对您的问题尝试此解决方案:
$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.
我希望它会有所帮助。
你应该有$db->RecordCount()
这个函数将是你想要的返回计数。
试试这个:
$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']);