Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器SQL\u计算\u找到\u行_Php_Mysql_Sql_Codeigniter_Pagination - Fatal编程技术网

Php 代码点火器SQL\u计算\u找到\u行

Php 代码点火器SQL\u计算\u找到\u行,php,mysql,sql,codeigniter,pagination,Php,Mysql,Sql,Codeigniter,Pagination,如何获取特定查询的总行数,并将查询结果限制为10行。例如我有一张叫sample的桌子。它有400行。在运行where name=“%Sam%”之类的查询时,它会返回213行。现在,我将只获取前10行并将结果显示给用户,但我需要返回的总行数。我应该如何在代码点火器中完成它 SELECT SQL_CALC_FOUND_ROWS * FROM sample WHERE name like "%sam%" 像这样? 如何检索总数计数?您需要运行第二个查询

如何获取特定查询的总行数,并将查询结果限制为10行。例如我有一张叫sample的桌子。它有400行。在运行where name=“%Sam%”之类的查询时,它会返回213行。现在,我将只获取前10行并将结果显示给用户,但我需要返回的总行数。我应该如何在代码点火器中完成它

SELECT
        SQL_CALC_FOUND_ROWS *
FROM
        sample
WHERE
        name like "%sam%"
像这样?
如何检索总数计数?

您需要运行第二个查询以获取
SQL\u CALC\u FOUND\u ROWS的结果:

SELECT FOUND_ROWS()
这将返回使用
SQL\u CALC\u found\u ROWS
找到的值。您可能会发现使用别名更容易获得结果,不过:

SELECT FOUND_ROWS() AS num_results

您可以使用两个查询,一个用于获取计数,另一个返回有限的结果

就像在模型中一样,创建一个只返回count变量的函数

并创建生成分页结果的第二个函数

例如

这里是控制器代码

$where=//已计算

$count = count($this->model->count($where));

        if( $count > 0 ) { $total_pages = ceil($count/$limit); } else { $total_pages = 0; }

        if ($page > $total_pages) $page = $total_pages; 


        $start = $limit * $page - $limit;


        $users = $this->model->limit($sidx,$sord,$start,$limit,$where);

$count = count($this->model->count($where));

        if( $count > 0 ) { $total_pages = ceil($count/$limit); } else { $total_pages = 0; }

        if ($page > $total_pages) $page = $total_pages; 


        $start = $limit * $page - $limit;


        $users = $this->model->limit($sidx,$sord,$start,$limit,$where);