On 4 Sep 2012, at 7:04 AM, Hassan Alnatour <halna...@gardeniatelco.com> wrote:
> I am trying to use a data table called jtable , it uses arrays and return it 
> as json  .. now i have the php code for it  : 
> 
> //Get records from database
> $result = mysql_query("SELECT * FROM people;");
>  
> //Add all records to an array
> $rows = array();
> while($row = mysql_fetch_array($result))
> {
>     $rows[] = $row;
> }
>  
> //Return result to jTable
> $jTableResult = array();
> $jTableResult['Result'] = "OK";
> $jTableResult['Records'] = $rows;
> print json_encode($jTableResult);
>                                                                               
>                                                                      and it 
> returns :                                                                     
>                                                                               
>                                                                               
>                                                    {
> "Result":"OK", "Records":[
>   {"PersonId":1,"Name":"Benjamin 
> Button","Age":17,"RecordDate":"\/Date(1320259705710)\/"},
>   {"PersonId":2,"Name":"Douglas 
> Adams","Age":42,"RecordDate":"\/Date(1320259705710)\/"},
>   {"PersonId":3,"Name":"Isaac 
> Asimov","Age":26,"RecordDate":"\/Date(1320259705710)\/"},
>   {"PersonId":4,"Name":"Thomas 
> More","Age":65,"RecordDate":"\/Date(1320259705710)\/"}
>  ]
> }
> now  i did it in web2py like this :
> def person():
>     data = db().select(db.Person.ALL)
>     mylist = {}
>     mylist['Result'] = 'OK'
>     mylist['Records']=[]
>     for i in data:
>      i.name = {'ID':i.id,'Name': i.name,'Age': i.age}
>      mylist['Records'].append(i.name)
>     return mylist
> 
> but there is still something wrong in the way i create the array , and its 
> making some problems for me in the edit/delete .. so is the function i did is 
> the same as the php code up there ..
> best regards,

It would be helpful to know what "something wrong" and "some problems" mean. 
FWIW, I'd recode at least this much:

def person():
    data = db().select(db.Person.ALL)
    mydict = dict(Result='OK', Records=[])
    for i in data:
        mydict['Records'].append(dict(ID=i.id, Name=i.name, Age=i.age))
    return mydict

Part of my changes are only stylistic (I don't like naming a dict 'mylist'), 
and my version is more concise. But substantively, I'd be suspicious of 
assigning i.name to a dict containing a reference to i.name, not to mention 
that using a local variable is more efficient here.




-- 



Reply via email to