开发者

rownum and problem with pagination?

I use of codeigniter and class (library) pagination in it, why after each click on pagination in column #, be counted rows from the beginning.

I want like this( p = pagination ):

p1-> #-> 1 2 3

p2-> #-> 4 5 6

p3 -> #-> 7 8 9

p4 #-> 10

EXAMPLE: see example of my problem.

For see full code go to here: FULL CODE

$data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.*
    FROM (
        SELECT *
        FROM hotel_submits
        ORDER BY id desc
        LIMIT $offset, 3    
    ) t,
    (SELECT @rownum:=0开发者_C百科) r");

Rownum in top code is the associated with this problem.

You know how to solve this problem?


Can you retrieve the $offset for the page you are currently on?
Like if I am on page 1, $offset = 1,
if I am on page 2, $offset = 4 (1 + (page 2 - 1) * 3)
if I am on page 3, $offset = 7 (1 + (page 3 - 1) * 3)
etc.

If you can't readily get that at the moment, you can pass it from your controller so your view is aware of the current $offset. Then in your code, instead of using $row->rownum, add the value of the current $offset minus 1 since rownum starts 1.

foreach ($results->result() as $row)
{
    echo    '<tr><td><input type="checkbox" name="remember_me" value="true" ></td>';
    // echo    '<td>'.$row->rownum.'</td>';
    echo    '<td>'.intval($row->rownum + $offset - 1).'</td>';
    echo    '<td>'.$row->type.'</td>';
    echo    '<td>'.$row->name.'</td>';
    echo    '<td>'.$row->star.' - '.$row->type_star.'</td>';                                
    echo    '<td><span id="'.$row->address.'" class="tooltip">'.$row->address.'</span></td>';
    echo    '<td><span id="'.$row->number_phone.'" class="tooltip">'.$row->number_phone.'</span></td>';
    echo    '<td>'.$row->fax.'</td>';
    echo    '<td>'.$row->site.'</td>';
    echo    '<td>'.$row->email.'</td>';
    echo    '<td>'.$row->date.'</td></tr>';
}

So on page 2, instead of 1, 2, 3 etc, it should be (1+4-1) 4, (2+4-1) 5, (3+4-1) 6.
I hope that makes sense.


Just use uri->segment(4). It should solve your problem. Pagination automatically changes the URI and appends the last count along with the URI. So when you pass $this->uri->segment(4). Then that will take the last value returned so when you move to the next page, you can get from 5 onwards.

This is how Pagination works. So use this:

admin/accommodation/show/(segment 4)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜