本文介紹了如何在不考慮 PDO 限制的情況下獲取找到的總行數?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我發現為了顯示加載更多按鈕而進行輔助查詢以檢查更多結果非常不專業.
我正在使用 PDO,有什么方法可以在沒有限制過濾器的情況下獲得找到的總行數,但仍然過濾結果?
當前代碼:
//顯示結果$開始= 0$r=$db->prepare("SELECT * FROM location WHERE area=:area LIMIT $start,10");$r->execute($fields);//查看是否有更多結果$r=$db->prepare("SELECT * FROM location WHERE area=:area");$r->execute($fields);$offset=$start+10;if($r->rowCount()>$offset){echo "加載更多";}
解決方案
MySQL only AFAIK:
$r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM location WHERE area=:area LIMIT $start,10");$r->execute($fields);var_dump($r->fetchAll());var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));
對于數據庫服務器來說,當然與查詢所有記錄的時間一樣繁重.對于非 MySQL 使用,此查詢當然比獲取所有記錄的行數要好:
$r=$db->prepare("SELECT COUNT(*) FROM location WHERE area=:area");$r->execute($fields);$count = $r->fetch(PDO::FETCH_COLUMN);回聲 $count;
I found it very unprofessional to make a secondary query to check for more results in order to display a load more button.
I'm using PDO, is there any way to get the total found rows without the limit filter but still filtering the results?
Current Code:
// Show Results
$start = 0
$r=$db->prepare("SELECT * FROM locations WHERE area=:area LIMIT $start,10");
$r->execute($fields);
// See if there is more results
$r=$db->prepare("SELECT * FROM locations WHERE area=:area");
$r->execute($fields);
$offset=$start+10;
if($r->rowCount() > $offset){
echo "<div class='load'>Load More</div>";
}
解決方案
MySQL only AFAIK:
$r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM locations WHERE area=:area LIMIT $start,10");
$r->execute($fields);
var_dump($r->fetchAll());
var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));
About as heavy for the database server as querying a single time for all the records of course. For non-MySQL use, this query is of course better then getting the rowcount of all the records:
$r=$db->prepare("SELECT COUNT(*) FROM locations WHERE area=:area");
$r->execute($fields);
$count = $r->fetch(PDO::FETCH_COLUMN);
echo $count;
這篇關于如何在不考慮 PDO 限制的情況下獲取找到的總行數?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!