Hello!

I need to build a variable query to select rows from a database. I need to 
get the last 11 records from my database, but only the even.

This the code of the controller:

    # Muestra los últimos 11 artículos 
    limite_articulos = 11

    # Getting the max id of the table:
    maxID = 
db(db.articulos).select(db.articulos.id.max()).first()[db.articulos.id.max()]
    # Getting the maxID-11
    limite_bajo = maxID-limite_articulos
    
    cuenta=0
    even_query = ""

    for i in range(limite_bajo,maxID):
        cuenta+=1
        if cuenta%2==0: # only the even records are saved
            #print str(i) + " es " + str(cuenta)
            query_par += "(db.articulos.id=='" + str(i) + "') | "
   
    even_query = query_par[:-2]

The resulted even_query is as follows:
  even_query= (db.articulos.id=='2297') | (db.articulos.id=='2299') | 
(db.articulos.id=='2301') | (db.articulos.id=='2303') | 
(db.articulos.id=='2305')

I use the resulted string in a query:
    articulos = db(even_query).select(db.articulos.id, db.articulos.titulo, 
db.articulos.contenido, db.articulos.autor,orderby=~db.articulos.id)     

But, I get the following error:
*class 'gluon.contrib.pymysql.err.ProgrammingError'> (1064, u"You have an 
error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near '=='2297') | 
(db.articulos.id=='2299') | (db.articulos.id=='2301') | (db.articulo' at 
line 1")*
If I write the query directy I don't get the error:
    articulos = db((db.articulos.id=='2297') | (db.articulos.id=='2299') | 
(db.articulos.id=='2301') | (db.articulos.id=='2303') | 
(db.articulos.id=='2305')).select(db.articulos.id, db.articulos.titulo, 
db.articulos.contenido, db.articulos.autor, orderby=~db.articulos.id)     

The database is SQL Server 2005, Web2py 1.99.7.

How can to write a variable query? 

Thanks for any help. Regards.

P. D. I know my english is not very well, I hope you can understand me.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to