[Plone-IT] lista, dictionary, array, indici e query mysql

Riccardo Lemmi riccardo a reflab.it
Gio 24 Gen 2008 12:01:46 UTC


On Thursday 24 January 2008, sguglia a arrows.it wrote:
> Salve!
>
> Problemino irrisolto del giorno:
> devo creare dinamicamente una stringa (e' uno statement WHERE mysql) che ha
> come particolarita' di essere inframezzata ad ogni iterazione da un OR,
> _a_parte_l'_ultima_. Usando una lista farei cosi':
>
>
>
> for y in mylist:
>   if mylist.index(y) < (len(mylist) - 1):
>     var_boole = " OR "
>   else:
>     var_boole = ""
>   where_string = where_string + "field_" + y + " LIKE 'pippo' " + var_boole
> return where_string
> # forse inelegante (accetto volentieri miglioramenti), risultato:
> # se mylist = [ 'uno' , 'due' , 'tre' ], alla fine
>
> # where_string ==
> # field_uno LIKE 'pippo' OR field_due LIKE 'pippo' OR field_tre LIKE
> 'pippo'

conditions = ["field_%s LIKE 'pippo'",]*len(mylist)
conditions = " OR ".join(conditions)
return  'where '+conditions%tuple(mylist)

> ...

non mi è chiaro, ma:

> in PHP andrei ad occhi chiusi, ma python lo sto masticando da una
> settimana...no, ok, due..:-) e mi stro incaprettando con la gestione degli
> arrays

dato che hai dimestichezza con il PHP perchè non usi un metodo DTML SQL? Ha 
proprio i comandi per creare query dinamiche (<dtml-sqlgroup> etc).

-- 
Riccardo Lemmi                           Email:   riccardo a reflab.it
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.it
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part.
URL:         <http://lists.plone.org/pipermail/plone-plone-it/attachments/20080124/16d3006a/attachment.asc>


Maggiori informazioni sulla lista Plone-IT