Description
PHP Version
8.3
CodeIgniter4 Version
4.1.5
CodeIgniter4 Installation Method
Manual (zip or tar.gz)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
MySQL 5.6
What happened?
When i paginate the model like this $UsersMode->orderBy('id_user', 'ASC')->paginate(8, 'group', $page_number);
returns "SELECT * FROM users ORDER BY id_user ASC LIMIT 8, 8
" based on offset and per page number
But my total count rows in the table are 24, so when i reach the end 16, 8
it returns me the same query as the last existing page in my database even with $page_number = 100
Steps to Reproduce
public function load_more($page_number = 2)
{
$UsersModel = new UsersModel();
$this->ViewData['Page'] = $page_number;
$this->ViewData['Users'] = $UsersMode->orderBy('id_user', 'ASC')->paginate(8, 'group', $page_number);
echo $UsersModel->db->getLastQuery();
}
returns "SELECT * FROM users ORDER BY id_user ASC LIMIT 8, 8
"
But my total count rows in the table are 24, so when i reach the end 16, 8
$page_number = 10
and go to a page number more than 3 it returns the same query "SELECT * FROM users ORDER BY id_user ASC LIMIT 16, 8
"
Expected Output
Going to a page number more than the total count rows of my table it should return the propper offset even if i have the total rows less than the per page number or less than the total count
$page_number = 10
it should returns the query "SELECT * FROM users ORDER BY id_user ASC LIMIT 80, 8
" even if i don't have enough records in my database table
Anything else?
No response