[ic] Look ahead at next value in a query/list?
Mike Heins
mike at perusion.com
Mon Jul 7 13:36:02 EDT 2003
Quoting Interchange User (interchange at framework.cx):
> Hi all,
>
> Is there a way to look ahead at values returned by a [query] to tell if
> there is another record about to be returned in between the
> [list][/list] tags? For instance, I have the following code, which
> returns a list of authors from a table. I want to put the comma after
> "[sql-param author]" only if there's another author in the list, but
> not at the end.
>
> ------------------------------------------------------------
> [query
> sql="select author FROM authors where article = '[item-code]' ORDER
> BY authorship"
> type=list
> list=1
> st=db
> ]
> [list]
> [sql-param author],
> [/list]
> [/query]
> ------------------------------------------------------------
>
> Currently, I end up with something like
>
> "Johnson J, Nichols RJ, Koch C, Gray J, Will L, Ernst B,"
>
> and I'd like to not put the comma in if I'm at the end of my results
> lists.
[list]
[sql-change 1]
[condition]1[/condition]
[else], [/else][/sql-change 1][sql-param author]
[/list]
I have sometimes done in catalog.cfg:
Variable COMMA_SEP_SQL [sql-change 999][condition]1[/condition][else], [/else][/sql-change 999]
Then:
[list]
__COMMA_SEP_SQL__[sql-param author]
[/list]
This is a common-enough need so that it might make sense to overload
[item-alternate], something like [item-alternate except_last]. In fact,
it makes so much sense that I have done it and put it in CVS. If you
use the latest, you will want:
[list]
[sql-param author][sql-alternate except_last], [/sql-alternate]
[/list]
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.513.523.7621 <mike at perusion.com>
I have a cop friend who thinks he ought be able to give a new ticket;
"too dumb for conditions".
More information about the interchange-users
mailing list