Welcome Guest, Not a member yet? Register   Sign In
Pagination negative offset
#1

Imagine page has Pagination,when use follow code to implement Pagination limit

Code:
$data ['list'] = $this->test_model->get_list ( $per_page, $this->uri->segment ( 2 ));

Now lets say user modify segment to -20 (negative value), code will give error


Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 4

LIMIT -20, 20


how we can solved this issue?

currently I'm using following code to avoid mention issue..is any better way?

Code:
$offset = NULL;
if (ctype_digit($this->uri->segment ( 4 ))) {
$offset = $this->uri->segment ( 4 );
}

$data ['list'] = $this->test_model->get_list ( $per_page, $offset);


Thank You
Reply
#2

Hi,

You could use the max function.

Code:
$data ['list'] = $this->test_model->get_list(max(0, $per_page), $offset);
Reply
#3

You can check that the page isn't negative.

Something like this:

Code:
$page = $this->uri->segment ( 2 ) && $this->uri->segment ( 2 ) > 0 ? (int) $this->uri->segment ( 2 ) : 1;
Reply




Theme © iAndrew 2016 - Forum software by © MyBB