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