Are you querying multiple table?? You can do a join... That way you will
have all the value for every fields the only catch is that when you join to
disambiguate fields names dal use table.field instead of just field as
field name so it migth happen that if you call "manually" vs
"programmatically" you field you forgot about that... You have to do
db.table['table.field']...

Richard

On Tue, May 1, 2018 at 11:22 AM, Maurice Waka <mauricew...@gmail.com> wrote:

> Thanks.
> It iterates well giving some fields data, but not all as needed. I get
> data from some 4 fields only. I have about 60 in some db. Plus there is
> this:
> <pydal.helpers.classes.recordupdater>
>
> On Tue, 1 May 2018, 16:44 Richard Vézina <ml.richard.vez...@gmail.com>
> wrote:
>
>> for f, v in row:
>>
>> Should be
>>
>> for f, v in row.iteritems():
>>
>> k, v for key, value, but I use f instead of k because you will have
>> field_name and value in this for loop...
>>
>> Richard
>>
>> On Mon, Apr 30, 2018 at 11:39 PM, Maurice Waka <mauricew...@gmail.com>
>> wrote:
>>
>>> What would f, v be.
>>> I get this error : ValueError : too many values to unpack
>>>
>>> On Mon, 30 Apr 2018, 20:38 Richard Vézina <ml.richard.vez...@gmail.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Apr 30, 2018 at 1:21 PM, Maurice Waka <mauricew...@gmail.com>
>>>> wrote:
>>>>
>>>>> Sorry I tried to clarify by my new question :
>>>>>
>>>>> If I have a column with data like db.persons with data like
>>>>> Carl
>>>>> Junior
>>>>> Maggie
>>>>> Tom
>>>>> Derrick
>>>>>
>>>>> And each column name has other fields with data such as:
>>>>> persons.name persons.age persons.location persons.occupation
>>>>> persons.interests
>>>>> Carl 23 London Neuroscientist brainy stuff
>>>>> Junior 25 Tokyo doctor medical research
>>>>> Maggie 33 Nairobi farmer GMO research
>>>>> Tom 25 Sydney teacher educational ideas
>>>>> Derrick 21 Chicago surgeon Cutting through
>>>>>
>>>>>
>>>>>
>>>>> I want to iterate through the column  persons.nameand randomly pick a
>>>>> name and using the rows object, display all data about the person.
>>>>>
>>>>> If I do
>>>>> rows_name = db().select(db.persons.name).column()
>>>>>
>>>>
>>>>
>>>> The above should be :
>>>>
>>>> fields = db.persons.fields
>>>> # You should have in fields a list of all fields names you migth want
>>>> to remove "id" field by filtering it or find index and pop it out of the
>>>> list
>>>> # ex.: fields.pop(fields.index('id'))
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>> rows = db(db.persons.ALL).select()
>>>>>
>>>>
>>>> db(where_clause).select(fields_name_separated_by_comma)
>>>>
>>>> The above is completly wrong as you pass the fields instead of
>>>> specifying your where clause parameter...
>>>>
>>>> In you example you really only need select like this :
>>>>
>>>> def some_func_name()
>>>>     rows = db(db.persons.id > 0).select(db.persons.ALL)
>>>>
>>>>     rows_values = []
>>>>     for row in rows:
>>>>         row_value = []
>>>>         for f, v in row:
>>>>             if f != 'id':
>>>>                 row_value.append(v)
>>>>         rows_values.append(row_value)
>>>>     return rows_values
>>>>
>>>> ret = some_func_name()
>>>>
>>>> for r in ret:
>>>>     print(' '.join(ret))
>>>>
>>>> I didn't tested it but the above should work...
>>>>
>>>> Good luck
>>>>
>>>>>
>>>>> for row in rows:
>>>>>     if rows_name[0] == 'Maggie':
>>>>>         for row in rows:
>>>>>                 return [row.age+' '+row.location+' '+row.occupation+'
>>>>> '+row.interests]
>>>>>
>>>>> The problem is that if I query 'Carl' which is the first item, I get
>>>>> the response but I cant query any other name .
>>>>> Regards
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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 a topic in the
>>>>> Google Groups "web2py-users" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.
>>>>> com/d/topic/web2py/ynBOuIdufso/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> web2py+unsubscr...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>> I had been using python isle to test some modules. Now I just want to
>>>>> get a clearer code by removing the long codes.
>>>>>
>>>>>
>>>>> On Mon, 30 Apr 2018, 20:09 Richard Vézina <ml.richard.vez...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Man this is convulated...
>>>>>>
>>>>>> Not sure what is in name4 "name4 is a list that contains items found
>>>>>> in db.health.name, as well as other dbs." what items are you
>>>>>> referring at?? What other dbs?
>>>>>>
>>>>>> Why are you connecting to sqlite by your own...
>>>>>>
>>>>>> This check is just weird :
>>>>>>
>>>>>> if id == item in name4:
>>>>>>
>>>>>> I would suggest you don't use function to achieve what you try to do
>>>>>> it just make it overcomplicated... Also never define functions in models
>>>>>> files it will slow down your app as models files are executed at each
>>>>>> request.
>>>>>>
>>>>>> My guess is that if you end with the final list that you showed us is
>>>>>> because at some point you put the name of the fields you want instead of
>>>>>> the value attached to them...
>>>>>>
>>>>>> But seriously it very difficult to help...
>>>>>>
>>>>>> You could show us all the models that are important to the problem
>>>>>> and show us an example of what you want at the end.
>>>>>>
>>>>>>
>>>>>> I also don't know from you field name in health table what they
>>>>>> content.
>>>>>>
>>>>>> So for example let say
>>>>>>
>>>>>>
>>>>>> You have a table name fruit
>>>>>>
>>>>>> rows = db(db.fruit.id > 0).select(db.fruit.ALL)
>>>>>>
>>>>>> With a fruit_name field
>>>>>>
>>>>>> for r in rows:
>>>>>>     print('A {0} is a fruit blah blah blah. A {0} when its green is
>>>>>> bitter to taste. A {0} when ripe looks bright yellow and tastes
>>>>>> sweet.'.format(r.fruit_name)
>>>>>>
>>>>>> That's it!!
>>>>>>
>>>>>> Richard
>>>>>>
>>>>>>
>>>>>> On Sat, Apr 28, 2018 at 11:02 AM, Maurice Waka <mauricew...@gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Thanks, but I seem to be having a challenge when returning the rows
>>>>>>> from a specific id name or number. I tried this on a different app as
>>>>>>> follows:
>>>>>>>
>>>>>>> Model:
>>>>>>>
>>>>>>> db.define_table( "health",
>>>>>>>                 Field('name', 'string'),
>>>>>>>                 Field('definition', 'text', length= 1000000,
>>>>>>> default="We'll update soon.", notnull=True),
>>>>>>>                 Field('abnvals', 'text', length=
>>>>>>> 1000000,default="We'll update soon.", notnull=True),
>>>>>>>                 Field('normvals', 'text', length=
>>>>>>> 1000000,default="We'll update soon.", notnull=True),
>>>>>>> def selections():
>>>>>>> code
>>>>>>> return name4# name4 is a list that contains items found in
>>>>>>> db.health.name, as well as other dbs.
>>>>>>>  def refer11():
>>>>>>>     db = current.db
>>>>>>>     rows = db(db.health).iterselect()
>>>>>>> for row in rows:
>>>>>>> id = row.name
>>>>>>> if id == item in name4:
>>>>>>> #return [', '.join(item) for item in rows]# Gives a list of the
>>>>>>> titles only as: ['name','definition','abnvals','normvals',]
>>>>>>>                         #return [item for item in rows]# Gives this:
>>>>>>> [<row>
>>>>>>>                         #return row# gives this : <row>
>>>>>>>                         #return [item for item in row]# Gives a list
>>>>>>> of the titles only as: ['name','definition','abnvals','normvals',]
>>>>>>>
>>>>>>> When using sql speak, this works well:
>>>>>>> def refer11():
>>>>>>> id = 0
>>>>>>> location = ""
>>>>>>> conn = sqlite3.connect('wellness.db')
>>>>>>> c = conn.cursor()
>>>>>>> c.execute('select * from health')
>>>>>>> records = c.fetchall()
>>>>>>> for record in records:
>>>>>>>     id = record[1]
>>>>>>>     for item in name4:
>>>>>>>         if id == item in name4:
>>>>>>>         return record[2:]
>>>>>>>
>>>>>>> If row.name has e.g. apple, mango, guava, pineapple, then
>>>>>>>
>>>>>>> and the fields contain info about the fruits e.g.
>>>>>>>
>>>>>>> if id/row.name picks mango, i want a list of these:
>>>>>>>
>>>>>>> definition data: A mango is a fruit blah blah blah.
>>>>>>> abnvals data: A mango when its green is bitter to taste.
>>>>>>> normvals data: A mango when ripe looks bright yellow and tastes
>>>>>>> sweet.
>>>>>>>
>>>>>>> so when doing return row
>>>>>>> I should get ['A mango is a fruit blah blah blah. A mango when its
>>>>>>> green is bitter to taste. A mango when ripe looks bright yellow and
>>>>>>> tastes sweet.]
>>>>>>> and not
>>>>>>> ['name','definition','abnvals','normvals',]
>>>>>>>
>>>>>>> On Fri, Apr 27, 2018 at 6:16 PM, Richard Vézina <
>>>>>>> ml.richard.vez...@gmail.com> wrote:
>>>>>>>
>>>>>>>> for f in db.table.fields:
>>>>>>>>     print f
>>>>>>>>
>>>>>>>> or
>>>>>>>>
>>>>>>>> rows = db(db.fruits.id > 0).select(db.fruits.ALL)  # ALL means all
>>>>>>>> fields
>>>>>>>>
>>>>>>>> for r in rows:
>>>>>>>>     print(r)
>>>>>>>>
>>>>>>>> You can control which field you want with the previous example
>>>>>>>>
>>>>>>>> myfields = [f for f in db.table.fields if
>>>>>>>> SOME_FILTERING_CHECK_OVER_THE_FIELD_YOU_WANT]
>>>>>>>>
>>>>>>>>
>>>>>>>> for r in rows:
>>>>>>>>     for f in myfields:
>>>>>>>>         print(r[f])
>>>>>>>>
>>>>>>>>
>>>>>>>> You can play around that you should be able to figure out how you
>>>>>>>> can do what you wanna do.
>>>>>>>>
>>>>>>>> Richard
>>>>>>>>
>>>>>>>> On Fri, Apr 27, 2018 at 10:08 AM, Maurice Waka <
>>>>>>>> mauricew...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Addendum
>>>>>>>>>
>>>>>>>>> I want a single list of  the items (the data from all fields)
>>>>>>>>>
>>>>>>>>> regards
>>>>>>>>>
>>>>>>>>> On Fri, Apr 27, 2018 at 5:06 PM, Maurice Waka <
>>>>>>>>> mauricew...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> There are several fields in my db such as this:
>>>>>>>>>>
>>>>>>>>>> db.define_table('fruit', Field('id', 'reference auth_user'), 
>>>>>>>>>> Field('apple','boolean',label=T('Apple')), 
>>>>>>>>>> Field('apricot','boolean',label=T('Apricot')), 
>>>>>>>>>> Field('cherry','boolean',label=T('Cherry')), Field('fig','boolean', 
>>>>>>>>>> label=T('Fig')), Field('lychee','boolean', label=T('Lychee')), 
>>>>>>>>>> Field('peach','boolean', label=T('Peach')), Field('pear','boolean', 
>>>>>>>>>> label=T('Pear')), Field('plum','boolean', label=T('Plum')))
>>>>>>>>>> If i want to print items from a specific field i would do:
>>>>>>>>>>
>>>>>>>>>> rows = db(db.fruits)select()for row in rows:
>>>>>>>>>>  return row.apple
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Now I want to return all data from all fields. How Can i go about it.
>>>>>>>>>>
>>>>>>>>>> I have tried:
>>>>>>>>>>
>>>>>>>>>> return rows and I get a blank screen.
>>>>>>>>>>
>>>>>>>>>> return [rows] and I get [<rows>].
>>>>>>>>>>
>>>>>>>>>> Kind regards
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 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 a topic
>>>>>>>>>> in the Google Groups "web2py-users" group.
>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>> https://groups.google.com/d/topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>>>>>>>>> To unsubscribe from this group and all its topics, send an email
>>>>>>>>>> to web2py+unsubscr...@googlegroups.com.
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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.
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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 a topic in
>>>>>>>> the Google Groups "web2py-users" group.
>>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>>>>>> topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>>> web2py+unsubscr...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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 a topic in
>>>>>> the Google Groups "web2py-users" group.
>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>>>> topic/web2py/-Hlx1yh-4MU/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> web2py+unsubscr...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>> --
>>>>> 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 unsu
>>>>>
>>>> --
> 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.
>

-- 
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