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

sguglia a arrows.it sguglia a arrows.it
Gio 24 Gen 2008 11:29:07 UTC


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'



ma se provo lo stesso con un recordset da mysql, non funge, probabilmente (confermate?) perche' non viene messo in una lista ma in un dictionary con conseguente assenza di indice numerico ma sola presenza di coppie chiave->valore.

for x in context.query_1():
...boh!

quello che serve qui e' lo stesso, cioe' un loop:

che prenda ogni record dal recordset x
che concateni la stringa " AND " in coda ad una stringa data
se e' l' ultima iterazione, non concateni niente oppure una stringa vuota

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

Come al solito, 
grazie e bye..
Stefano.




Maggiori informazioni sulla lista Plone-IT