[Zope] ZSQL and DTML question

Christian Theune ct@gocept.com
Thu, 7 Mar 2002 11:04:17 +0100


Hi.

So you are using DTML (that implied your topic, ai?):

one solution is:

<dtml-in mySQLMethod>
    <dtml-if sequence-start>
	<table>
	<tr><th>first header</th><th>second header ....</tr>
    </dtml-if>

    <tr><td><dtml-var first-item></td><td><dtml-var second-item> ...</tr>

    <dtml-if sequence-end>
	</table>
    </dtml-if>

    <dtml-else>
	No data found
</dtml-in>

btw: try using ZPT instead of dtml ... :)

On Thu, Mar 07, 2002 at 11:25:22AM +0100, Mitch Pirtle wrote:
> Thanks for the quick response.  This doesn't solve my problem, though.=20
> Where do you conditionally put the HTML for the table (that does not
> belong in the loop)?
>=20
> So (for example) I really want to:
>=20
> if(query returned results)
> 	print <table>, header row once, not in loop
> 	*** NOW loop on the query results for each <TR> ***
> 	print </table> once, not in loop
> else
> 	print "<p>Sucks to be you, homey.</p>\n" // NO TABLE
> endif
>=20
> I am not into doing this as a python script, and then passing every
> query to it for HTML formatting - each row may have arbitrary links
> added based on either the query or calling method, so it cannot be
> reused as a generic object.
>=20
> Or am I approaching it the wrong way?
>=20
>=20
>=20
> On Thu, 2002-03-07 at 09:58, Christian Theune wrote:
> > Hi.=20
> >=20
> > Thats easy in Zope too (not to say "its easier" ...):
> >=20
> > <dtml-in myZSQLQuery>
> >=20
> >  here state your result
> >=20
> > <dtml-else>
> >=20
> >     Sorry, no data returned
> >=20
> > </dtml-in>
> >=20
> > Watch out you "Help!" link in the Zope Management Interface,
> > where the DTML Reference for "dtml-in" gives you a lot of=20
> > answers ...
> >=20
> >=20
> > Greetings
> >=20
> > Christian
> >=20
> > On Thu, Mar 07, 2002 at 10:44:43AM +0100, Mitch Pirtle wrote:
> > > Hi everyone,
> > >=20
> > > I cannot figure out how to do something the Zope way(TM).  Basicall=
y,
> > > PHP lets you call a query and act on it conditionally, e.g. "if the
> > > query returns data do A, if not then do B".  How is this done best
> > > within Zope?
> > >=20
> > > For example, I got really used to returning a recordset (query) as =
an
> > > HTML table.  But only IF the recordset returned more than 0 rows.  =
If
> > > the query had an empty result, then I would instead print "<p>No re=
cords
> > > found.</p>" or something like that.
> > >=20
> > > I know there's a better and easier way in Zope, I just don't know h=
ow
> > > -;^>=3D  Can someone kindly point me in the right direction?
> > >=20
> > > --=20
> > >=20
> > > Mitch Pirtle
> > > Corporate Security Officer
> > > K=FChne & Nagel Management AG
> > > Tel: +41 1 786 96 45
> > > Fax: +41 1 786 95 95
> > >=20
> > >=20
> > > _______________________________________________
> > > Zope maillist  -  Zope@zope.org
> > > http://lists.zope.org/mailman/listinfo/zope
> > > **   No cross posts or HTML encoding!  **
> > > (Related lists -=20
> > >  http://lists.zope.org/mailman/listinfo/zope-announce
> > >  http://lists.zope.org/mailman/listinfo/zope-dev )
> >=20
> > --=20
> > Christian Theune - ct@gocept.com
> > gocept gmbh & co.kg - schalaunische strasse 6 - 06366 koethen/anhalt
> > tel.+49 3496 3099112 - fax.+49 3496 3099118 mob. - 0178 48 33 981
> >=20
> > reduce(lambda x,y:x+y,[chr(ord(x)^42) for x in 'zS^BED\nX_FOY\x0b'])
> >=20
> > _______________________________________________
> > Zope maillist  -  Zope@zope.org
> > http://lists.zope.org/mailman/listinfo/zope
> > **   No cross posts or HTML encoding!  **
> > (Related lists -=20
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope-dev )
> --=20
>=20
> Mitch Pirtle
> Corporate Security Officer
> K=FChne & Nagel Management AG
> Tel: +41 1 786 96 45
> Fax: +41 1 786 95 95
>=20
>=20
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -=20
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )

--=20
Christian Theune - ct@gocept.com
gocept gmbh & co.kg - schalaunische strasse 6 - 06366 koethen/anhalt
tel.+49 3496 3099112 - fax.+49 3496 3099118 mob. - 0178 48 33 981

reduce(lambda x,y:x+y,[chr(ord(x)^42) for x in 'zS^BED\nX_FOY\x0b'])