単純なページングクラス

WBOY
リリース: 2016-06-23 14:20:38
オリジナル
1792 人が閲覧しました

这是一个简单易用的分页类。只需在你原有的程序中加两句、改一句就可以了
先贴代码
paging.php

<?phpclass Paging {  public static $count = 0;  public static $size = 0;  public static $page = 0;  static function prepare($sql, $pagesize=10) {    $page = isset($_GET['page']) ? $_GET['page'] : 1;    $pageon = ($page - 1) * $pagesize;    $sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";    $rs = mysql_query($sql);    $p = mysql_query('SELECT FOUND_ROWS()');    list(self::$count) = mysql_fetch_row($p);    self::$size = $pagesize;    self::$page = $page;    return $rs;  }  static function bar($tpl='') {    if(!$tpl) $tpl = '<a href=?reset>首页</a> <a href=?prve>上一页</a> <a href=?next>下一页</a> <a href=?end>尾页</a>';    $count = ceil(self::$count / self::$size);    $page = self::$page;    unset($_GET['page']);    $d = array(      'reset' => 1,      'prve' => $page > 1 ? $page - 1 : 1,      'next' => $page < $count ? $page + 1 : $count,      'end' => $count,    );    foreach($d as $k=>$v) {      $_GET['page'] = $v;      $tpl = str_replace($k, http_build_query($_GET), $tpl);    }    echo $tpl;  }}
ログイン後にコピー

通常你都有类似这样的语句
$sql =".....";
$rs = mysql_query($sql);

$rs = mysql_query("select ....");


你只需改作
include 'paging.php';
$rs = paging::prepare($sql, 每页行数);
在需要出现分页条的地方写入
paging::bar();

就可以了,非常简单!


回复讨论(解决方案)

前排拜模。
这样的写法还是第一次见到。
$sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";

sql还用preg_replace……

闲着无事,来个js函数,娱乐一下

<!doctype html><html><meta charset=utf-8><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><style> .page a{  text-decoration:none;}.page a span{  padding:6px 17px 6px 17px;  border:1px solid #ABC;  color: #1155BB;  font-size:14px;  font-weight:bold;  font-family: 'helvetica neue', arial, sans-serif;}#Next{margin-left:5px;}.click_page{  background:#2266BB;  color:#ffffff; } .page a span:hover{   background:#3377CC;   color:#ffffff; }</style><body><ul id="myPage"> <li>aaaaaaaa1</li> <li>aaaaaaaa2</li> <li>aaaaaaaa3</li> <li>aaaaaaaa4</li> <li>aaaaaaaa5</li> <li>aaaaaaaa6</li> <li>aaaaaaaa7</li> <li>aaaaaaaa8</li> <li>aaaaaaaa9</li> <li>aaaaaaaa10</li> </ul> <div id="myDev"></div><script>function Paginate(pageDIV,parent,child,size){	var $pageDest = $(pageDIV);	var $mainTag = $(parent);	var mainContent = $mainTag.html();    var currentPage = 0;  //当前页    var pageSize = size;  //每页行数		var numRows = $mainTag.find(child).length; 	var numPages = Math.ceil(numRows/pageSize); //总页数	$mainTag.bind("repaginate", function() {		$mainTag.find(child).hide();	$mainTag.find(child).slice((currentPage*pageSize),(currentPage+1)*pageSize).show();	});		    var $pager = $("<div class='page'><a href='javascript:void(0)'><span id='Prev' style='margin-right:4px;'>&laquo; Prev</span></a></div>");    for( var page = 0; page < numPages; page++ )    {             $("<a href='javascript:void(0)'><span id='"+(page+1)+"'>"+ (page+1) +"</span></a>")           .bind("click", { "newPage": page }, function(event){                currentPage = event.data["newPage"];				$("#Prev").css({"background":"#FFF"});				$("#Next").css({"background":"#FFF"});				if(currentPage == 0 ){				$("#Prev").css({"background":"#c0c0c0"});				}else if(currentPage == (numPages-1)){								$("#Next").css({"background":"#c0c0c0"});				}                               $(this).children("span").attr("class","click_page").css({"color":"#FFFFFF"});                $(".page a span").not($(this).children("span")).attr("class","");                $(".page a span").not($(this).children("span")).css({"color":"#1155BB"});                $mainTag.trigger("repaginate");            })            .appendTo($pager);    }       var next=$("<a href='javascript:void(0)'><span id='Next'>Next &raquo;</span></a>");    $pager.append(next);    $pager.appendTo($pageDest);//显示分页条    $("#1").attr("class","click_page");    $("#1").css({"color":"#FFFFFF"});    $mainTag.trigger("repaginate");//初始化触发一次    $("#Prev").bind("click",function(){       var prev=Number($(".click_page").text()-2);       currentPage=prev;	   	   if(currentPage==0){				 $(this).css({"background":"#c0c0c0"});		}else if(currentPage<0) {                 return;		}			   $("#Next").css({"background":"#FFF"});           $("#"+(prev+1)).attr("class","click_page");       $("#"+(prev+1)).css({"color":"#FFFFFF"});       $(".page a span").not($("#"+(prev+1))).attr("class","");       $(".page a span").not($("#"+(prev+1))).css({"color":"#1155BB"});       $mainTag.trigger("repaginate");    });     $("#Next").bind("click",function(){	        var next=$(".click_page").attr("id");	          currentPage=Number(next);	   if((currentPage+1)>numPages) {	           return;       }else if((currentPage+1)==numPages) {                 $(this).css({"background":"#c0c0c0"});         }        $("#Prev").css({"background":"#FFF"});       $("#"+(currentPage+1)).attr("class","click_page");       $("#"+(currentPage+1)).css({"color":"#FFFFFF"});       $(".page a span").not($("#"+(currentPage+1))).attr("class","");       $(".page a span").not($("#"+(currentPage+1))).css({"color":"#1155BB"});		        $mainTag.trigger("repaginate");    });	 } Paginate("#myDev","#myPage","li",3); </script> </body> </html>
ログイン後にコピー

娱乐娱乐


谢谢分享,确实很方便 ,简单易用 。学习了。

用的是传统的$query=mysql_query("SELECT * FROM news LIMIT $kaishi ,

10 ");
现在才发现还有这种写法..学习了

换一种调用写法,可能感觉要好些

include 'paging.php';$rs = mysql_paging_query($sql, 20);//替代 mysql_querymysql_paging_bar();//显示分页条
ログイン後にコピー
paging.php
class Paging {  private static $_Instance;  private function __clone(){}  public static function getInstance() {    if(empty(self::$_Instance)) self::$_Instance = new self();    return self::$_Instance;  }  protected $count = 0;  protected $size = 0;  protected $page = 0;  function prepare($sql, $pagesize=10) {    $page = isset($_GET['page']) ? $_GET['page'] : 1;    $pageon = ($page - 1) * $pagesize;    $sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";    $rs = mysql_query($sql);    $p = mysql_query('SELECT FOUND_ROWS()');    list($this->count) = mysql_fetch_row($p);    $this->size = $pagesize;    $this->page = $page;    return $rs;  }  function bar($tpl='') {    if(!$tpl) $tpl = '共{count}页 第{page}页 <a href=?{reset}>首页</a> <a href=?{prve}>上一页</a> <a href=?{next}>下一页</a> <a href=?{end}>尾页</a>';    $count = ceil($this->count / $this->size);    $page = $this->page;    $d = array(      '{reset}' => 1,      '{prve}' => $page > 1 ? $page - 1 : 1,      '{next}' => $page < $count ? $page + 1 : $count,      '{end}' => $count,      '{count}' => $count,      '{page}' => $page,    );    foreach($d as $k=>&$v) {      if(in_array($k, array('{reset}', '{prve}', '{next}', '{end}'))) {        $_GET['page'] = $v;        $v = http_build_query($_GET);      }    }    echo strtr($tpl, $d);  }}function mysql_paging_query($sql, $num=10) {  return Paging::getInstance()->prepare($sql, $num);}function mysql_paging_bar($tpl='') {  return Paging::getInstance()->bar($tpl);}
ログイン後にコピー

收了好好研究,谢楼主

楼主的分析很棒

学习了。看着确实不错

定啊 ~~~

大牛写的,收了

好东西 mark 备用

数据库连接写在哪儿呢?

简单的是最好的

没学过php,但原理是一样的

先占位置,有机会凑个热闹。

不错啊,你从91年便开始从事计算,有没有烦忧过啊。真是不容易。

分页代码中有sql,唠叨老大你会误导初学者。

既然sql 都集成在paging 类中了,就顺便做了点扩展,支持查询.
分页代码中有sql,唠叨老大你会误导初学者。

//表单部分。<form method="post" action="#">   按标题: <input type="text" name="QueryLike[testTitle]" />    id大于: <input type="text" name="QueryMoreThan[testId]" />    <input type="submit"  value="搜索"/></form>
ログイン後にコピー

对原有的paging 类,做极小的改变.
//这里的代码,要和唠叨老大保持高度一致.header('Content-type:text/html; charset=utf-8');include 'parse.php';include 'convert.php';include 'pageparam.php';include 'page.php';$sql = "select testId,testTitle from test ";$rs = mysql_paging_query($sql, 5);//替代 mysql_query//调试,看查询结果!while($rows = mysql_fetch_object($rs)){    print("<pre class="brush:php;toolbar:false">");         print_r($rows);    print("
");}echo mysql_paging_bar();//显示分页条
ログイン後にコピー


下面开始,就是折腾的地方了。
class Paging {    private static $_Instance;    private function __clone(){}    public static function getInstance() {        if(empty(self::$_Instance)) self::$_Instance = new self();        return self::$_Instance;    }    protected $count = 0;    protected $size = 0;    protected $page = 0;    //extend by murain. 参数解析对象.    protected $paramParse;    function prepare($sql, $pagesize=10) {        $page = isset($_GET['page']) ? $_GET['page'] : 1;        $pageon = ($page - 1) * $pagesize;        //extend by murain.  改变一 得到sql语句..         $this->paramParse = new pageparam();        $sql = $this->paramParse->getSql($sql);        $sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";        $rs = mysql_query($sql);        $p = mysql_query('SELECT FOUND_ROWS()');        list($this->count) = mysql_fetch_row($p);        $this->size = $pagesize;        $this->page = $page;        return $rs;    }    function bar($tpl='') {        if(!$tpl) $tpl = '共{count}页 第{page}页 <a href=?{reset}>首页</a> <a href=?{prve}>上一页</a> <a href=?{next}>下一页</a> <a href=?{end}>尾页</a>';        $count = ceil($this->count / $this->size);        $page = $this->page;        $d = array(            '{reset}' => 1,            '{prve}' => $page > 1 ? $page - 1 : 1,            '{next}' => $page < $count ? $page + 1 : $count,            '{end}' => $count,            '{count}' => $count,            '{page}' => $page,        );        foreach($d as $k=>&$v) {            if(in_array($k, array('{reset}', '{prve}', '{next}', '{end}'))) {         //改变二,分类的超链接.                  $v = $this->paramParse->makePageItem($v);             }        }        return  strtr($tpl, $d);    }}
ログイン後にコピー

如果,就很easy 的支持了表单的查询. 这里仅做了两个基本的例子,一个like 查询,一个是 >= 查询.
这样当你有查询需要的变化时,只用把查询表单的命名更改一下即可.

下面就是扩展类了,有兴趣的慢慢看。欢迎指导拍砖。
pageparam.php
<?phpclass pageparam{    protected $parser;    protected $serchparam;    protected $convert;    public function __construct()    {        //参数解析.        if( strtolower($_SERVER['REQUEST_METHOD']) == 'post'){            $this->parser = new postParse();        }else {            $this->parser = new getParse();        }        $this->serchparam = $this->parser->parse(); //得到查询参数.        $this->qConvert = new queryConvert( $this->serchparam );    }    /**     * 处理sql 查询条件     * @param $sql     */    public function getSql( $sql )    {        list( $where  , $order ) = $this->qConvert->convert();        $whereString = "";        if( !preg_match( "/where/i" , $sql))        {             $whereString = " where 1=1";        }        foreach($where as $whereItem):            $whereString .= " and $whereItem";        endforeach;        $sql .= $whereString;;        return $sql;    }    public function makePageItem($v)    {        $v = "page=$v";        unset(  $this->serchparam["page"]  );        foreach ( $this->serchparam as $key =>$val):           $v .= "&$key=$val";         endforeach;        return $v;    }    public static  function encode( $str){        $src  = array("/","+","=");  $dist = array("-a","-b","-c");    $old  = base64_encode($str); $new  = str_replace($src,$dist,$old);        return $new;    }    public static function decode( $str) {        $src = array("-a","-b","-c");   $dist  = array("/","+","=");   $old  = str_replace($src,$dist,$str);    $new = base64_decode($old);        return $new;    }}
ログイン後にコピー


parse.php
<?php/*获取参询参数的接口*/interface iParse{  function parse();}class getParse implements iParse{private $_params;function parse(){$this->setParam( $_GET );return $this->getParam();}//设置与获取参数function setParam( $_param ) {  $this->_params = $_param;  }function getParam() {   return $this->_params;  }}class postParse implements iParse{private $_params = array();private $_postParam;private $_ParseItem;  //解析序列const PARSE_ARRAY_INTERVAL_WORD = "-_-";public function parse(){    $params = $_POST;    $this->setParams($params);    return $this->getParams();}function __construct(){    $itemArr = array(           "QueryLike" => "CommonParse"        ,  "QueryMoreThan" => "CommonParse"        ,  "QueryIn" => "ArrayParse"    );    $this->setParseItem($itemArr);}private function setParseItem($itemArr)  { $this->_ParseItem = $itemArr;  }private function setParams( $params = array() ) {    $this->_postParam = $params;    foreach( $this->_ParseItem as $key=>$handle):    $this->$handle( $key );    endforeach;}private function getParams() {return $this->_params;}private function  CommonParse($key) {  //单值参数解析.$$key = isset( $this->_postParam[$key])? $this->_postParam[$key]:"";   //终于用了一次$$if(is_array($$key))://遍历所有的参数,为空的不参与搜索,后期交由handle去处理.foreach ($$key as $key2 => $value):if (trim($value) == "") unset($$key[$key2]);    //删除搜索条件中值为空的参数else {$value = pageparam::encode($value);$this->_params +=  array($key."_".$key2=>"$value");}endforeach;endif;}private function ArrayParse($name) {  //数组参数解析  通常为checkbox.foreach($this->_postParam as $key => $val):if(preg_match("/$name/i",$key)){$str_val =  array();  //生成parm所用参数数组.$str_cond = array();  //生成查询条件数组.$key_piece = str_replace("$name"."_","",$key);  //找出mul 部分.if(sizeof($_POST["$key"]) >0):foreach($_POST["$key"] as $val) {$str_val[]= pageparam::encode($val);  //生成parm所用参数数组.$str_cond []= "$key_piece = '$val'  ";  //生成查询条件数组.}$str_mul = implode( self::PARSE_ARRAY_INTERVAL_WORD ,$str_val);   $this->_params[$key] = $str_mul; //合并生成parameters.endif;}endforeach;}}
ログイン後にコピー



看来是写的很不精简了,有空优化一下,还有一个。
convert.php

abstract class converAbstract{    private $_params;    private $_iConvertHandle;    public $queryCond = array();    function __construct($param)    {        $this->setParams($param);    }    /**     * 设置待转换参数。     * @param $params     */    public function setParams($params) { $this->_params = $params; }    public function getParams() {   return $this->_params;  }    abstract function convert();    public function getKeyValue($key)    {        //pr($key,"正在解析字段名");        preg_match_all("/(Query[^_]+)_([\w-]+)/i",$key,$match);        if(!$match[0]){            $match[1][0] = $key;            $match[2][0] = "";        }        //  pr($match,"解析后的值");        return array($match[1][0],$match[2][0]);    }    /**     * 设置转换器接口     * @param $handle     */    public function setConvertHandle($handle)    {        $handleClsString = $handle;        $this->_iConvertHandle = new $handleClsString();    }    /**     * 得到转换器接口     * @return mixe     */    public function getConvertHandle()    {        return $this->_iConvertHandle;    }}class queryConvert extends converAbstract{    function __construct($param)    {        parent::__construct( $param);    }    /**     * 实现 convert 接口.     */    function convert()    {        $params = $this->getParams();        foreach ($params as $key => $val):            //得到查询条件.            list($queryHandle, $queryKey) = $this->getKeyValue($key);            if (preg_match("/Query/i", $queryHandle)):                $this->setConvertHandle($queryHandle . "ConvertHandle");  //设置查询条件接口转换器.                //KDG::pr( $queryKey , "得到的对应的数.");                if ($queryKey):                    $temp = $this->getConvertHandle()->convert2Query($queryKey, $val);                    if (is_array($temp)):                        $this->mergeData($temp);                    endif;                endif;            endif;        endforeach;        return array($this->queryCond,$this->order);     }    /**     *     * 归并查询数组     * @param unknown_type $arr     */    function mergeData($arr)    {        foreach ($arr as $key => $val):            if (!array_key_exists($key, $this->queryCond)) {                $this->queryCond += $arr;            }            else {                if (is_int($key)) { //Patch for the merget the QueryCondArr conflict!                    $this->queryCond [] = $val;                    continue;                }                $this->queryCond [$key] = array_merge($this->queryCond [$key], $val);            }        endforeach;    }}interface iConvertHandle{    function convert2Query($key,$val);  //转换至查询条件}//like 查询转换class QueryLikeConvertHandle implements iConvertHandle {    function convert2Query($key,$val)  //转换至查询条件    {        $queryCond = array();        $queryCond []= "$key like '%" . pageparam::decode($val) . "%'";        return $queryCond;    }}//大于等于查询条件转换class QueryMoreThanConvertHandle implements iConvertHandle {    function convert2Query($key,$val)  //转换至查询条件    {        $queryCond = array();        $queryCond []= "$key >= '".trim(pageparam::decode($val) ) ."'";        return $queryCond;    }}
ログイン後にコピー

mysql的分页,语法都直接支持了:limit m,n
mssql是2012才有fetch ...,之前一直仅仅是一半功能的top n或大动干戈的row_number()

不错。很值得学习。

挺有?意的一??法,有??把我的分??改一下.

感觉不要把sql都写里面去啊好些啊。。
分页类传个总数跟当前页码与页码的url或分析生成页码列表就好了。

另,
$sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";
sql有两个select应该有问题了吧? 加个1参数...

是哦,从设计原理上说,把SQL写到分页不好。
分页就分页。获取数据就获取数据

www.dcrcms.com我写的小CMS里有分页类的。include/class/class.page.php 也可以看看

有demo吗

是哦,从设计原理上说,把SQL写到分页不好。
分页就分页。获取数据就获取数据
www.dcrcms.com我写的小CMS里有分页类的。include/class/class.page.php 也可以看看
精简的代码更方便传播,至于具体写在内在外。 我认为遵守的原则是多用组合。  

SQL_CALC_FOUND_ROWS の効率について心配した人はいないでしょうか?

これはテスト済みですが、多くの場合、mysql ドキュメントに記載されているほど美しくありません

私はプログラミングも言語も知りませんし、PHP が何なのかも知りません。 WordPressの公式サイトを見て、タオバオのテンプレートをインターネットからダウンロードして、ブログを作成しました。しかし、とても疲れたように感じます。それらはすべて手動で追加する必要がありますか? 自動収集はありますか?

お気に入り〜

学びました、このような投稿を長い間見ていませんでした

時間があるときに書きます。
上の階の人たちはみんなマスターです。

初心者が誤解されないことを祈るばかりです。

1 通常、関数はパブリックな部分であるため、依存するパラメーターの数はできる限り少なく、シンプルである必要があります。Web サイトのアーキテクチャであっても、コード アーキテクチャであっても、依存するものが少ないほど良いと言えます。
2 コードのリファクタリングには非常に不利です。

オンラインのバグを迅速に解決し、製品要件を迅速に完了するために、すべての SQL が実行されるとは想像しにくいですが、通常、Web サイトではある程度の mvc が使用されます。 mysql クラスに加えて、モデル クラスも存在します。最後に、開発ではビジネス ロジック クラスを作成するための基本クラスとしてモデルを使用します。ページングクラスにSQLを記述する場合。両方を使用する場合は、おそらく、技術マネージャーがどのようにコード構造を作成しているか疑問です。同社は非常に民主的ですが、間違いなく最悪です。

いつかデータベースを調整する必要があるかもしれませんが、なぜですか?何もすることはありませんか?データ量が多すぎるため。テーブル処理を行うには、csdn を例に挙げて、私が公開した投稿を年ごとに処理します (個人的な推測ですが、フォーラムによっても処理される可能性があります)。通常、ページネーションは 1 か所で呼び出されることはありません。これは製品の要件によって異なります。つまり、複数の場所を変更する必要があります。そして今度は、マスター/スレーブを使用してデータベースのサブ処理を行う必要があります。つまり、mysql 接続を区別する必要があるため、mysql_query を使用する場合は 2 番目のパラメーターも指定する必要があります。MVC を使用すると、この問題をうまく解決できます。

これはシンプルで使いやすいページング クラスです。 2 つの文を追加し、1 つの文を元のプログラムに変更するだけです。
最初にコードを貼り付けます。
paging.php
PHP コード
class Paging {
public static $count = 0;
public static $ size = 0;
public static $page = 0;
static function prepare($sql, $……

使い方がわかりません。ページングの使い方がわかりません。教えてください。非常に単純です
私コード

aa.php

$con = mysql_connect("localhost","root","123456")
if (!$con)
{
die('Could not接続: ' .mysql_error());

mysql_select_db("qq", $con);

$result = mysql_query("SELECT * FROM abc"); >


ジアージュ
シジアン
";

while($row = mysql_fetch_array($result))
{
echo "";
echo "" . $row['qq'] . "" ;
echo "" . $row['jiage'] . "";
echo "" . $row['lirun'] . "" ;
echo "" . $row['shijian'] . "";
echo "";
}
echo "" ;

mysql_close($con);
?>

このコードはデータベースからデータを取り出してテーブル形式で出力しますが、データベース内のデータが多すぎるとテーブルが長くなります。 。 。そこで、5 つの情報だけを表示するページングを作成したいのですが、6 番目の情報を見たい場合は、次のページに移動する必要があります
手伝ってもらえますか? !


この投稿は xuzuning によって最終編集されました: 2012-09-01 19:08:56
include 'paging.php';
$con = mysql_connect("localhost","root","123456");
if (!$con)
{
die('接続できませんでした: ' . mysql_error());
}

mysql_select_db("qq", $con);

//$result = mysql_query("SELECT * FROM abc");
$result = mysql_paging_query("SELECT * FROM abc", 20);//每页20 行


mysql_paging_bar();//显示分页条上面来一个

echo "

lt;/ tr>";

while($row = mysql_fetch_array($result))
{
echo "";
エコー 「";
エコー 「";
エコー 「";
エコー 「";
echo "";
}
echo "
ジアージュ シジアン
」 。 $row['qq'] 。 "」 。 $row['jiage'] 。 "」 。 $row['lirun'] 。 "」 。 $row['shijian'] 。 "
";
mysql_paging_bar();//显示分页条下面也来一个
mysql_close($con);

简单吧?很简单

php看不懂
include 'paging.php';

$con = mysql_connect("localhost","root","123456");

if (!$con)
{
die('接続できませんでした: ' . mysql_error());
}

mysql_select_db("qq", $con);

//$result = mys……
太感承認済み。。。私は自己研究下。。。 どのように使用します。。不是比使用讞例化对要速度快呢,我之前的分页类写的老长的...老大

收藏了~

$sql = preg_replace('/selects/i', '$0SQL_CALC_FOUND_ROWS ' 、$sql)。 "$pageon、$pagesize を制限";

バージョン主、上面这话代码は何を行っていますか?

$sql = preg_replace('/selects/i', '$0SQL_CALC_FOUND_ROWS ', $sql) 。 "$pageon、$pagesize を制限";

バージョン主、上面この话代コードは何を行っていますか?

将入の SQL 命令列を形例に変更します
select SQL_CALC_FOUND_ROWS * from .... 制限 1,10

この命令列、制限 子句就不解が必要ですか?

SQL_CALC_FOUND_ROWS パラメータはすべての符合条件の計算数を計算でき、その後 SELECT FOUND_ROWS() を使用して取得できます
すべての符合条件の計算数を取得するには、select count() が必要です...次吗
#33 の負担は無意です
SELECT FOUND_ROWS() 必然的に select count() .... 快速、他にもう必要がないため、越えデータベース完了

当然、SQL_CALC_FOUND_ROWS がある必要がありますので、SQL_CALC_FOUND_ROWS が必要です

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート