Thank you. Let me work on it. Regards 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 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.