Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: how to put links on the bottom of an image gallery

by atemon (Chaplain)
on Aug 27, 2007 at 01:59 UTC ( #635195=note: print w/replies, xml ) Need Help??


in reply to how to put links on the bottom of an image gallery

Hi,

Why dont you try  LIMIT in MySQL?

you can have your SQL as

SELECT * FROM your_table ORDER BY id LIMIT 0, 15
here limit statement will limit the number of records returned. In limit statement, 1st numeric value is the first record to be returned (offset) and 2nd numeric value is the number of records (row count). i.e. LIMIT 0, 15 will return 1st 15 records ( 0th to 14th)LIMIT 15, 15will return next 15 records ( 15th to 29th) and so on. For more details pllease refer to SELECT Syntax

Your link can be like "script.pl?page=0&orderby=id" page 1 | "script.pl?page=15&orderby=id" to enable pagination.

A step-by-step procedure to get pagination explained at Re: DB Search.

Cheers !

--VC

Updates :
Have a look at PerlMonks FAQ, The Perl Monks Guide to the Monastery for more information on how the Monastery works. How (Not) To Ask A Question will be a good guide. There are hundreds of thousands of posts here, Super Search is your friend. There are more than one postings available in the monastery regarding pagination



There are three sides to any argument.....
your side, my side and the right side.

Replies are listed 'Best First'.
Re^2: how to put links on the bottom of an image gallery
by sulfericacid (Deacon) on Aug 27, 2007 at 02:10 UTC
    I like the idea but page=15 for the second page is a little misleading. Either use a next=## instead of page=## or add some equations to produce accurate page descriptions 1,2,3,etc.


    "Age is nothing more than an inaccurate number bestowed upon us at birth as just another means for others to judge and classify us"

    sulfericacid

      Hi,

      Giving page=15 is a "direct" method by which you can use the argument "page" directly with LIMIT. If you are passing pages as 0, 1, 2, 3 you can multiply it with 15. If its starting with 1, multiply page-1 with 15. Your perl script may look like

      my $q = new CGI; my $page = $q->param("page") || '0'; #default 0 my $count = $q->param("count") || 15; # more flexibility. you can pa +ss the No of records as count :), defaults to 15 $offset = $page * count; # assumes that page no starts with 0. #$offset = ($page-1) * count; # assumes that page no starts with 1. Co +mment previous line and uncomment this if you wish to start page from + 1 $SQL = "SELECT * FROM your_table ORDER BY id LIMIT $offset, $count"; ... <rest of your code> ...
      Hope this helps :)

      Cheers !

      --VC



      There are three sides to any argument.....
      your side, my side and the right side.

        I'd also test that the arguments page/count/whatever don't contain any sql injections.
        e.g. if $count in this command "SELECT * FROM your_table ORDER BY id LIMIT $offset, $count";
        would contain "15; update users set password='hacked';" both statements will be executed:
        "SELECT * FROM your_table ORDER BY id LIMIT 0, 15; update users set password='hacked';"

        Since both count and offset should be numerical I'd do something like $count =~ s/\D*//g
        This will remove any nondigit character.

        michael

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://635195]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2022-05-25 12:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (90 votes). Check out past polls.

    Notices?