[thelist] denormalizing a result set in dreamweaver

Phil Turmel pturmel-webdev at turmel.org
Fri Feb 8 13:57:30 CST 2008


r937 wrote:
> i ended up advising my client to modify his php
> 
> (not sure if he can do it, but his php skills are guaranteed better than 
> mine, as mine are zero)
> 
> recap:  the query produces a sorted one-to-many result set --
> 
>    foo  aa 9
>    foo  bb 3
>    foo  cc 7
>    bar  xx 4
>    qux  mm 5
>    qux  nn 7
>    qux  oo 8
> 
> he originally asked me to try to produce a query result set with only one 
> row per location --
> 
>    foo  aa 9  bb 3  cc 7
>    bar  xx 4
>    qux  mm 5  nn 7  oo 8
> 
> but this is insanely difficult to do with sql
> 
> right now he's (already) doing the following with his php (my pseudocode) --
> 
> . run the query
> . while rows remaining, get next result row
>      process the result row
> . end while
> 
> i advised him to rewrite it like this --
> 
> . run the query
> . set $prevlocation = '' /* empty string */
> . while rows remaining, get next result row
>      if result row location = $prevlocation
>           append row data to end of array (or whatever)
>      else /* new location, process previous location first */
>           if $prevlocation > ''  /* i.e. not first time though */
>              process $prevlocation with all appended data
>           endif
>           set $prevlocation = current result row location
>      endif
> . end while
> . process $prevlocation with all appended data
>    ( for the last location )
> 
> 
> this'll work, yeah?
> 
> 
> 
> rudy 
> 
> 

Yes, it'll work.  And yes, this is how I'd do it, too.

Phil



More information about the thelist mailing list