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

Reply via email to