Perl/DBI
Hello all, I am getting to the point where I need to start thinking about doing pagination for search results. I did some searches and it looks like there are some pagination modules, but I am not quite interested in going that route yet. I am using a handful of columns from the search so I do not think that retrieving all results and then only showing a subset will be very efficient. It also looks like you can execute FOUND_ROWS() after doing your initial query and it will give you the total results. This is probably the best route, but it is not easily implemented with the way I have set up my functions. Are there any other options that I have missed? Suggestions? Thanks, Shawn Shawn Michael Hinchy [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
Re: Perl/DBI
On 6/24/07, Shawn Hinchy <[EMAIL PROTECTED]> wrote: Hello all, I am getting to the point where I need to start thinking about doing pagination for search results. I did some searches and it looks like there are some pagination modules, but I am not quite interested in going that route yet. I am using a handful of columns from the search so I do not think that retrieving all results and then only showing a subset will be very efficient. It also looks like you can execute FOUND_ROWS() after doing your initial query and it will give you the total results. This is probably the best route, but it is not easily implemented with the way I have set up my functions. Are there any other options that I have missed? Suggestions? If you are not interested in using the modules, it is not actually that hard to roll your own. In the past I have done different things for total counts, either two separate queries, one just a 'SELECT COUNT(*)' and the other to actually fetch the data. Depending on your data you might be able to add the count into your data fetching query but probably not. Why do you not want to use the modules? Thanks, Shawn Shawn Michael Hinchy [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/ -- ~Tyler
Re: Perl/DBI
Quoting Tyler Gee <[EMAIL PROTECTED]>: On 6/24/07, Shawn Hinchy <[EMAIL PROTECTED]> wrote: Hello all, I am getting to the point where I need to start thinking about doing pagination for search results. I did some searches and it looks like there are some pagination modules, but I am not quite interested in going that route yet. I am using a handful of columns from the search so I do not think that retrieving all results and then only showing a subset will be very efficient. It also looks like you can execute FOUND_ROWS() after doing your initial query and it will give you the total results. This is probably the best route, but it is not easily implemented with the way I have set up my functions. Are there any other options that I have missed? Suggestions? If you are not interested in using the modules, it is not actually that hard to roll your own. In the past I have done different things for total counts, either two separate queries, one just a 'SELECT COUNT(*)' and the other to actually fetch the data. Depending on your data you might be able to add the count into your data fetching query but probably not. Why do you not want to use the modules? Thank you Tyler, I hadn't though about just using select COUNT(*). I was shying away from using the modules because I knew that it wasn't too hard and I was afraid that I wouldn't find one that would do exactly what i wanted. Then there is the concern that my needs will change in the future and I'll have to find and re-implement another module instead of just tweaking my own code. Or maybe I just like to go through the pain on my own. :) I think two separate queries will work fine for me now, I just didn't want to have to load all the results for fear it would be a memory hog and slow things down since searches will be frequent. Thanks, Shawn Shawn Michael Hinchy [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
Re: Perl/DBI
On 6/24/07, Shawn Hinchy <[EMAIL PROTECTED]> wrote: Quoting Tyler Gee <[EMAIL PROTECTED]>: > On 6/24/07, Shawn Hinchy <[EMAIL PROTECTED]> wrote: >> >> Hello all, >> >> I am getting to the point where I need to start thinking about doing >> pagination for search results. >> >> I did some searches and it looks like there are some pagination >> modules, but I am not quite interested in going that route yet. I am >> using a handful of columns from the search so I do not think that >> retrieving all results and then only showing a subset will be very >> efficient. It also looks like you can execute FOUND_ROWS() after >> doing your initial query and it will give you the total results. This >> is probably the best route, but it is not easily implemented with the >> way I have set up my functions. >> >> Are there any other options that I have missed? Suggestions? > > > If you are not interested in using the modules, it is not actually that hard > to roll your own. In the past I have done different things for total > counts, either two separate queries, one just a 'SELECT COUNT(*)' and the > other to actually fetch the data. Depending on your data you might be able > to add the count into your data fetching query but probably not. > > Why do you not want to use the modules? Thank you Tyler, I hadn't though about just using select COUNT(*). I was shying away from using the modules because I knew that it wasn't too hard and I was afraid that I wouldn't find one that would do exactly what i wanted. Then there is the concern that my needs will change in the future and I'll have to find and re-implement another module instead of just tweaking my own code. Or maybe I just like to go through the pain on my own. :) I think two separate queries will work fine for me now, I just didn't want to have to load all the results for fear it would be a memory hog and slow things down since searches will be frequent. One thing people sometimes do if they have a lot of rows (a whole lot) is to actually keep a separate table that stores the count and then you can just select from that. It is not recommended unless you really have a lot of rows because it de-normalizes the database. The count() should work fine however. Cheers, Thanks, Shawn Shawn Michael Hinchy [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/ -- ~Tyler
Re: Perl/DBI
On Sunday June 24 2007 8:31 am, Shawn Hinchy wrote: > Hello all, > > I am getting to the point where I need to start thinking about doing > pagination for search results. > > I did some searches and it looks like there are some pagination > modules, but I am not quite interested in going that route yet. I am > using a handful of columns from the search so I do not think that > retrieving all results and then only showing a subset will be very > efficient. It also looks like you can execute FOUND_ROWS() after > doing your initial query and it will give you the total results. This > is probably the best route, but it is not easily implemented with the > way I have set up my functions. > > Are there any other options that I have missed? Suggestions? > > Thanks, > > Shawn > > > Shawn Michael Hinchy > [EMAIL PROTECTED] HTML::Pager is what your looking for it handles the page count for you , you just tell it how many results to present per page. it trivial to set up and use. Greg -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
Re: Perl/DBI
> If you are not interested in using the modules, it is not actually that hard > to roll your own. In the past I have done different things for total > counts, either two separate queries, one just a 'SELECT COUNT(*)' and the > other to actually fetch the data. Depending on your data you might be able > to add the count into your data fetching query but probably not. > > Why do you not want to use the modules? Thank you Tyler, I hadn't though about just using select COUNT(*). One thing people sometimes do if they have a lot of rows (a whole lot) is to actually keep a separate table that stores the count and then you can just select from that. It is not recommended unless you really have a lot of rows because it de-normalizes the database. The count() should work fine however. Keep in mind that count() is database dependent, even database-engine dependent. For instance, mySQL's MyISAM engine keeps a running count of the number of rows in a table, so count() is cheap. Buy the InnoDB engine does *not* keep that running total, so count() is relatively expensive. If you're talking a few hundred or thousand rows, it shouldn't be a problem--but if you're talking large numbers (six million rows of genomic data, anyone), then it'll probably be an issue. Paul -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/