You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by olivier demah <od...@messagio.com> on 2004/04/05 16:53:36 UTC

Conditionnal esql-query ?

This code is ok 

<blog_addnews>
<xsp:logic>
String id_blog_user = request.getParameter("id_blog_user");
String id_blog_news = request.getParameter("id_blog_news");
if ( id_blog_user == null) {
    id_blog_user = <xsp-session-fw:getxml context="authentication" as="string" path="/authentication/data/id_blog_user"/> ;
}
if (id_blog_news == null) {
    <esql:connection>
        <esql:pool>mblog_pg</esql:pool>
        <esql:execute-query>
            <esql:query>
                SELECT * FROM blog_news WHERE blog_news.id_blog_user = '<xsp:expr>id_blog_user</xsp:expr>'
           </esql:query>
            <esql:results>
                <esql:row-results>
                <blog_new>
                    <id_blog_news><esql:get-int column="id_blog_news"/></id_blog_news>
                    <id_blog_user><esql:get-string column="id_blog_user"/></id_blog_user>
                    <news_title><esql:get-string column="news_title"/></news_title>
                    <news_text><esql:get-string column="news_text"/></news_text>
                    <news_image><esql:get-string column="news_image"/></news_image>
                    <news_date_creation><esql:get-string column="news_date_creation"/></news_date_creation>
                    <news_date_modify><esql:get-string column="news_date_modify"/></news_date_modify>

                </blog_new>
                </esql:row-results>
            </esql:results>
        </esql:execute-query>
    </esql:connection>
} else {
    <esql:connection>
        <esql:pool>mblog_pg</esql:pool>

        <esql:execute-query>
            <esql:query>
                SELECT * FROM blog_news WHERE blog_news.id_blog_user = '<xsp:expr>id_blog_user</xsp:expr>' AND id_blog_news = '<xsp:expr>id_blog_news</xsp:expr>'
           </esql:query>
            <esql:results>
                <esql:row-results>
                <blog_new>
                    <id_blog_news><esql:get-int column="id_blog_news"/></id_blog_news>
                    <id_blog_user><esql:get-string column="id_blog_user"/></id_blog_user>
                    <news_title><esql:get-string column="news_title"/></news_title>
                    <news_text><esql:get-string column="news_text"/></news_text>
                    <news_image><esql:get-string column="news_image"/></news_image>
                    <news_date_creation><esql:get-string column="news_date_creation"/></news_date_creation>
                    <news_date_modify><esql:get-string column="news_date_modify"/></news_date_modify>

                </blog_new>
                </esql:row-results>
            </esql:results>
        </esql:execute-query>
    </esql:connection>
}
</xsp:logic>
</blog_addnews>
</xsp:page>



this one is not ok :

<blog_addnews>
<xsp:logic>
String id_blog_user = request.getParameter("id_blog_user");
String id_blog_news = request.getParameter("id_blog_news");
if ( id_blog_user == null) {
    id_blog_user = <xsp-session-fw:getxml context="authentication" as="string" path="/authentication/data/id_blog_user"/> ;
}


    <esql:connection>
        <esql:pool>mblog_pg</esql:pool>

        <esql:execute-query>
            <esql:query>
             if (id_blog_news == null) {
                SELECT * FROM blog_news WHERE blog_news.id_blog_user = '<xsp:expr>id_blog_user</xsp:expr>'
              } else {
                SELECT * FROM blog_news WHERE blog_news.id_blog_user = '<xsp:expr>id_blog_user</xsp:expr>' AND id_blog_news = '<xsp:expr>id_blog_news</xsp:expr>'
              }
           </esql:query>
            <esql:results>
                <esql:row-results>
                <blog_new>
                    <id_blog_news><esql:get-int column="id_blog_news"/></id_blog_news>
                    <id_blog_user><esql:get-string column="id_blog_user"/></id_blog_user>
                    <news_title><esql:get-string column="news_title"/></news_title>
                    <news_text><esql:get-string column="news_text"/></news_text>
                    <news_image><esql:get-string column="news_image"/></news_image>
                    <news_date_creation><esql:get-string column="news_date_creation"/></news_date_creation>
                    <news_date_modify><esql:get-string column="news_date_modify"/></news_date_modify>

                </blog_new>
                </esql:row-results>
            </esql:results>
        </esql:execute-query>
    </esql:connection>
</xsp:logic>
</blog_add>


but why cant i just do a simple if just on the esql-query part ?


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Conditionnal esql-query ?

Posted by Yves Vindevogel <yv...@implements.be>.
You can always use and old trick:
Select * from table where true ...  This will return everything ;-))

Right, without kidding.

You can do something like this, if you're query depends on a lot of 
parameters

<xsp:logic>
	String p1 = request.getParameter("p1") ;
	String p2 = request.getParameter("p2") ;

	String sql = "select * from myTable where true " ;

	if (p1 != null)
	{ 	sql = sql + " and p1 = '" + p1 + "'" } ;

	if (p2 != null)
	....
</xsp:logic>

In the end you have a decent query without having to check on 
parameters again, nor do you have to split you're code into if then 
else ...if then else



On 05 Apr 2004, at 16:53, olivier demah wrote:

> This code is ok
> <blog_addnews>
> <xsp:logic>
> String id_blog_user = request.getParameter("id_blog_user");
> String id_blog_news = request.getParameter("id_blog_news");
> if ( id_blog_user == null) {
>    id_blog_user = <xsp-session-fw:getxml context="authentication" 
> as="string" path="/authentication/data/id_blog_user"/> ;
> }
> if (id_blog_news == null) {
>    <esql:connection>
>        <esql:pool>mblog_pg</esql:pool>
>        <esql:execute-query>
>            <esql:query>
>                SELECT * FROM blog_news WHERE blog_news.id_blog_user = 
> '<xsp:expr>id_blog_user</xsp:expr>'
>           </esql:query>
>            <esql:results>
>                <esql:row-results>
>                <blog_new>
>                    <id_blog_news><esql:get-int 
> column="id_blog_news"/></id_blog_news>
>                    <id_blog_user><esql:get-string 
> column="id_blog_user"/></id_blog_user>
>                    <news_title><esql:get-string 
> column="news_title"/></news_title>
>                    <news_text><esql:get-string 
> column="news_text"/></news_text>
>                    <news_image><esql:get-string 
> column="news_image"/></news_image>
>                    <news_date_creation><esql:get-string 
> column="news_date_creation"/></news_date_creation>
>                    <news_date_modify><esql:get-string 
> column="news_date_modify"/></news_date_modify>
>
>                </blog_new>
>                </esql:row-results>
>            </esql:results>
>        </esql:execute-query>
>    </esql:connection>
> } else {
>    <esql:connection>
>        <esql:pool>mblog_pg</esql:pool>
>
>        <esql:execute-query>
>            <esql:query>
>                SELECT * FROM blog_news WHERE blog_news.id_blog_user = 
> '<xsp:expr>id_blog_user</xsp:expr>' AND id_blog_news = 
> '<xsp:expr>id_blog_news</xsp:expr>'
>           </esql:query>
>            <esql:results>
>                <esql:row-results>
>                <blog_new>
>                    <id_blog_news><esql:get-int 
> column="id_blog_news"/></id_blog_news>
>                    <id_blog_user><esql:get-string 
> column="id_blog_user"/></id_blog_user>
>                    <news_title><esql:get-string 
> column="news_title"/></news_title>
>                    <news_text><esql:get-string 
> column="news_text"/></news_text>
>                    <news_image><esql:get-string 
> column="news_image"/></news_image>
>                    <news_date_creation><esql:get-string 
> column="news_date_creation"/></news_date_creation>
>                    <news_date_modify><esql:get-string 
> column="news_date_modify"/></news_date_modify>
>
>                </blog_new>
>                </esql:row-results>
>            </esql:results>
>        </esql:execute-query>
>    </esql:connection>
> }
> </xsp:logic>
> </blog_addnews>
> </xsp:page>
>
>
>
> this one is not ok :
>
> <blog_addnews>
> <xsp:logic>
> String id_blog_user = request.getParameter("id_blog_user");
> String id_blog_news = request.getParameter("id_blog_news");
> if ( id_blog_user == null) {
>    id_blog_user = <xsp-session-fw:getxml context="authentication" 
> as="string" path="/authentication/data/id_blog_user"/> ;
> }
>
>
>    <esql:connection>
>        <esql:pool>mblog_pg</esql:pool>
>
>        <esql:execute-query>
>            <esql:query>
>             if (id_blog_news == null) {
>                SELECT * FROM blog_news WHERE blog_news.id_blog_user = 
> '<xsp:expr>id_blog_user</xsp:expr>'
>              } else {
>                SELECT * FROM blog_news WHERE blog_news.id_blog_user = 
> '<xsp:expr>id_blog_user</xsp:expr>' AND id_blog_news = 
> '<xsp:expr>id_blog_news</xsp:expr>'
>              }
>           </esql:query>
>            <esql:results>
>                <esql:row-results>
>                <blog_new>
>                    <id_blog_news><esql:get-int 
> column="id_blog_news"/></id_blog_news>
>                    <id_blog_user><esql:get-string 
> column="id_blog_user"/></id_blog_user>
>                    <news_title><esql:get-string 
> column="news_title"/></news_title>
>                    <news_text><esql:get-string 
> column="news_text"/></news_text>
>                    <news_image><esql:get-string 
> column="news_image"/></news_image>
>                    <news_date_creation><esql:get-string 
> column="news_date_creation"/></news_date_creation>
>                    <news_date_modify><esql:get-string 
> column="news_date_modify"/></news_date_modify>
>
>                </blog_new>
>                </esql:row-results>
>            </esql:results>
>        </esql:execute-query>
>    </esql:connection>
> </xsp:logic>
> </blog_add>
>
>
> but why cant i just do a simple if just on the esql-query part ?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
>
Met vriendelijke groeten,
Bien à vous,
Kind regards,

Yves Vindevogel
Implements

Mail: yves.vindevogel@implements.be  - Mobile: +32 (478) 80 82 91

Kempische Steenweg 206 - 3500 Hasselt - Tel-Fax: +32 (11) 43 55 76
Markt 18c  -  9700 Oudenaarde  -  Tel: +32 (55) 30 55 76

Web: http://www.implements.be

First they ignore you.  Then they laugh at you.  Then they fight you.  
Then you win.
Mahatma Ghandi.