Get the general point... thanks.

But still don't understand what "data=request.responseText;" does? And where
does serverresponse get set?

meerkat


> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Oblygre
> Sent: Wednesday, February 11, 2009 6:42 AM
> To: Gears Users
> Subject: [gears-users] Re: MYSQL JSON SQLITE
> 
> 
> Your moving client side code to php, which won't work.
> My suggestions under
> 
> //You php file on the server, this just outputs the json text
> while($obj = mysql_fetch_object($rs))
> {
>         $arr[] = $obj;}
> 
> $json = json_encode($arr);
> echo $json;
> 
> 
> 
> Then you set your javascript on the gears comp. to read the php file
> (which will contain the json text) via httprequest as shown in my
> example.
> Does this makes senes?
> 
> On Feb 10, 9:02 pm, "meerkat" <[email protected]> wrote:
> > Still not sure how to get the json array data into the HTTPRequest. In
> my
> > php file I now have:
> >
> > while($obj = mysql_fetch_object($rs))
> > {
> >         $arr[] = $obj;}
> >
> > $json = json_encode($arr);
> > $serverresponse = new HttpRequest($json, HttpRequest::METH_POST);
> >
> >  What does "data=request.responseText;" do? Where does this get the data
> > from?
> >
> > Thanks for your help.
> > meerkat
> >
> > > -----Original Message-----
> > > From: [email protected] [mailto:gears-
> [email protected]]
> > > On Behalf Of Oblygre
> > > Sent: Tuesday, February 10, 2009 6:22 AM
> > > To: Gears Users
> > > Subject: [gears-users] Re: MYSQL JSON SQLITE
> >
> > > Use httpreqeust to read from your php on the server into a variable
> > > (serverresponse) on the gears computer.
> > > Then you can use a worker to read data into the sql database.
> >
> > > I use something like this:
> > > Note: Settext is just for returning some info back to the user
> > > function floadfromdatabase(){
> > > if (script_active==1)
> > >   {settext("Error: Script is already running...","program_status");
> > > return false;}
> > > if (checkonlinestatus()==false)
> > >   {settext("Error: Not online. Network error?","program_status");
> > > return false;}
> > > settext("Reading data from main DB...","program_status");
> > > script_active=1;
> > > var link="/getdata.php?q=" + Math.floor(Math.random() * 100000);  ;
> >
> > > data="";
> > > var request = google.gears.factory.create('beta.httprequest');
> > > request.open('GET', link);
> > > request.onreadystatechange = function() {
> > >   if (request.readyState == 4) {
> > >     try {
> > >     data=request.responseText;
> > >     }
> > >     catch (ex) {
> > >       settext("Status: Error reading data from main
> > > DB","program_status");
> > >       active_script=0;
> > >       return;
> > >     }
> >
> > >     if (data.length==0)
> > >        settext('<font color="RED">No data found. Network error?</
> > > font>',"program_status")
> > >     else {
> > >       settext("Status: "+data.length+" byte(s) read from main DB,
> > > adding data to local DB","program_status");
> > >       insertdata(data);
> > >       }
> > >   }
> > > };
> > > request.send();
> >
> > > }
> > > function insertdata(data){
> > > var childWorkerId =
> > >     workerPool.createWorkerFromUrl('databaseworker.js');
> > >     workerPool.sendMessage(data, childWorkerId);
> >
> > > return;
> > > }
> >
> > > // databaseworker.js
> > > var wp = google.gears.workerPool;
> >
> > > wp.onerror = function(errorObject) {
> > >       alert("Error in workerPool: "+errorObject.message+"  on
> > > line"+errorObject.lineNumber);
> > >       };
> >
> > > wp.onmessage = function(a, b, message) {
> > >   if (1) {
> > >   try {
> > >        eval("dataarr="+serverresponse);
> >
> > >       }
> > >    catch (ex) {
> > >       alert("Error: No valid data found..");
> > >       return;
> > >     }
> >
> > > var dbcount=0;
> > > var reply="no reply";
> > > var db ;
> > > db= google.gears.factory.create('beta.database');
> > > if (db) {
> > >   db.open('yourdatabase');
> > >   db.execute('begin');
> > >   db.execute('drop table if exists yourtable');
> > >   db.execute('create table if not exists yourtable' +
> > >            ' (yourfield1, yourfield2, yourfield3, primary key
> > > (yourfield1))');
> > >   for (x in dataarr)
> > >     {
> > >     db.execute('insert into yourtable values(?,?,?)',
> > >         [dataarr[x].yourfield1,dataarr[x].yourfield2,dataarr
> > > [x].yourfield3];
> > >     dbcount++;
> > >     //if (dbcount%100==0)
> > >       //wp.sendMessage(dbcount+" record(s) added....",
> > > message.sender);
> > >     }
> > >   }
> > > db.execute('commit');
> > > db.close();
> > > reply=dbcount+" record(s) added from main DB, finished";       }
> > >     wp.sendMessage(reply, message.sender);
> > >   }
> >
> > > On Feb 9, 10:14 pm, meerkat <[email protected]> wrote:
> > > > Ok. Got round the php4 issue.
> >
> > > > Any clues on how to do  "data from server is saved in
> serverresponse"?
> >
> > > > Thanks
> >
> > > > On Feb 9, 2:34 pm, meerkat <[email protected]> wrote:
> >
> > > > > The web server I am working with is still on php4. This means
> > > > > json_encode($dataarray); is not supported. What strategy would I
> use
> > > > > instead?
> > > > > Thanks,
> > > > > meerkat
> >
> > > > > On Feb 9, 1:03 pm, "Tosca Lahiri" <[email protected]> wrote:
> >
> > > > > > Thanks for this advice.
> > > > > > In the php code is the $dataarray made up of:
> > > > > > [fieldname, value]?
> >
> > > > > > I have found the xml tutorial you suggested...it is very good.
> That
> > > is what
> > > > > > made me go down the xml route. I can see now however why the
> json
> > > option is
> > > > > > preferable.
> > > > > > TML
> >
> > > > > > -----Original Message-----
> > > > > > > From: [email protected] [mailto:gears-
> > > [email protected]]
> > > > > > > On Behalf Of Oblygre
> > > > > > > Sent: Monday, February 09, 2009 6:41 AM
> > > > > > > To: Gears Users
> > > > > > > Subject: [gears-users] Re: MYSQL XML SQLITE
> >
> > > > > > > I think its easier to use json istead of xml, this saves a lot
> of
> > > time
> > > > > > > in javascript, and PHP have built in functions to convert to
> json.
> >
> > > > > > > Example:
> >
> > > > > > > In your php script:
> > > > > > > echo json_encode($dataarray); // $dataarray contains all your
> db
> > > data
> >
> > > > > > > In your gearscode:
> > > > > > >  //data from server is saved in serverresponse
> > > > > > >  //
> > > > > > >  try {
> > > > > > >        eval("dataarr="+serverresponse);
> >
> > > > > > >       }
> > > > > > >    catch (ex) {
> > > > > > >       alert("Error: No valid data found..");
> > > > > > >       return;
> > > > > > >     }
> >
> > > > > > > var dbcount=0;
> > > > > > > var reply="no reply";
> > > > > > > var db ;
> > > > > > > db= google.gears.factory.create('beta.database');
> > > > > > > if (db) {
> > > > > > >   db.open('yourdatabase');
> > > > > > >   db.execute('begin');
> > > > > > >   db.execute('drop table if exists yourtable');
> > > > > > >   db.execute('create table if not exists yourtable' +
> > > > > > >            ' (yourfield1, yourfield2, yourfield3, primary key
> > > > > > > (yourfield1))');
> > > > > > >   for (x in dataarr)
> > > > > > >     {
> > > > > > >     db.execute('insert into yourtable values(?,?,?)',
> > > > > > >         [dataarr[x].yourfield1,dataarr[x].yourfield2,dataarr
> > > > > > > [x].yourfield3];
> > > > > > >     dbcount++;
> > > > > > >     //if (dbcount%100==0)
> > > > > > >       //wp.sendMessage(dbcount+" record(s) added....",
> > > > > > > message.sender);
> > > > > > >     }
> > > > > > >   }
> > > > > > > db.execute('commit');
> > > > > > > db.close();
> > > > > > > reply=dbcount+" record(s) added from main DB, finished";
> >
> > > > > > > A link to a tutorial using XML:
> > > > > > >http://www.onlamp.com/pub/a/onlamp/2007/06/28/the-power-of-
> google-
> > > gears-
> > > > > > > part-1.html
> >
> > > > > > > On Feb 8, 2:37 am, TML <[email protected]> wrote:
> > > > > > > > Just to clarify...I mean programmatically, not a one off
> with a
> > > tool.
> > > > > > > > When the user goes online on their pda the data is imported
> into
> > > the
> > > > > > > > locally held sqlite db.
> >
> > > > > > > > On Feb 8, 1:34 am, TML <[email protected]> wrote:
> >
> > > > > > > > > Hello,
> >
> > > > > > > > > I have a MySQL DB on web server. I have php page that
> extracts
> > > the
> > > > > > > > > data from table and creates an XML file.
> >
> > > > > > > > > Now, I need to know how to import that data in the XML
> file
> > > into the
> > > > > > > > > Gears sqlite DB on PDA?
> >
> > > > > > > > > Any suggestions?
> >
> > > > > > > > > Thanks,
> > > > > > > > > TML

Reply via email to