I'm doing a project where the database was designed before me and they
don't have a budget for a database re-design.  There are two entity
tables which /should/ have been the same model with some meta-fields
keyed off a type field, but it's not.  It's two tables, which should be
displayed intermixed, paged, and sorted by date.

The solution I thought up didn't do the trick.  I:
  - made two pagers, one for each table
  - got the current page's set
  - intermixed them by making an array of references, keyed off the
datetime string, refering to items in both result sets
  - krsort()ed the intermixed array

The result is probably obvious, but I'll explain it anyway... there is
nowhere near an equal density in entries-per-date between the two
tables, and so, each page shows results from both tables, but the dates
for the two models on the same page are very different; on page 1, i'll
get items from tableA with dates ranging 10/5/2007-10/9/2007 and tableB
with dates ranging from 10/13/2007 12:00:00 to 10/13/2007 at 15:00:00.

So I'm thinking I need to find a way to align the results, and it needs
to happen somehow in the pagers themselves (this being symfony, the
pager grabs the query criteria object and sets limit and offset for
you.)  I am already generating pager links based on the resultset with
the most pages; so artificially generating page links won't be a far
step.  

The only solution I've thought up, I don't want to do, which is to break
the query into dates e.g. if the date range is 2007-10-01 to 2007-10-31,
I do not want a separate pager link for each date which then subpages
the results or shows all results for that date; the date range might
span years and there might be hundreds of entries for a date.  I need a
single pager which aligns the two tables' entries' dates in each page of
results throughout the span.

I am very open to a ready-made class that can do this, especially if
it's based on Propel, or if it can take raw sql queries.

Thoughts?

Nathan

 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to