Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

A little extension for Data::Page

by valdez (Monsignor)
on Feb 17, 2004 at 21:26 UTC ( #329749=snippet: print w/replies, xml ) Need Help??

The module Data::Page lacks a simple property that is useful when you need to build SQL queries with a LIMIT clause under MySql: how many records should you skip to reach the first record of current page? The answer is $self->first - 1 records. This isn't obvious to remember and not so clear at first sight when you read in a query, so I added a property that implements this functionality. A little example:

... $pager = Data::Page::Extended->new($total_records, $page_size, $current_page); $sth = $dbh->prepare(q{select * from table where rec_date <= ? order by rec_date limit ?,?}); $sth->execute($date, $pager->skipped_items, $page_size); ...
Of course I sent a patch for this to acme.

Ciao, Valerio

package Data::Page::Extended;

use base 'Data::Page';

sub skipped_items
  my $self = shift;

  return $self->first - 1;


Replies are listed 'Best First'.
Re: A little extension for Data::Page
by acme (Novice) on Jul 20, 2004 at 14:16 UTC
    Data::Page 1.03 has just hit CPAN. It contains a skipped() method ;-)

    Leon Brocard

      Thank you very much :)

      Ciao, Valerio

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://329749]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2016-10-25 07:36 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (315 votes). Check out past polls.