How to pass variables from Android to be read by a PHP file, which then reads MYSQL Database and returns other data? -
here php file needs receive asort variables android, using can pulls specific data database:
php include('connect.php'); $asortid=$_post['asortid']; $asortlastname=$_post['asortlastname']; $asortemail=$_post['asortemail']; $afilter = $_post['afilter']; if ($afilter=='') { $asorturgency="5"} if ($afilter!='') { // set filters if ($asortid=='' || $asortid=='all id') { $mysortid="%"; } else{ $mysortid="%".$asortid."%"; } if ($asortemail=='' || $asortemail=='any email') { $mysortemail="%"; } else { $mysortemail="%".$asortemail."%"; } // master result query $query=mysql_query("select * names (id '".$mysortid."') , (email '".$mysortemail."'); //execute query try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch (pdoexception $ex) { $response["success"] = 0; $response["message"] = "database error!"; die(json_encode($response)); } // finally, can retrieve of found rows array using fetchall $rows = $stmt->fetchall(); if ($rows) { $response["success"] = 1; $response["message"] = "post available!"; $response["posts"] = array(); foreach ($rows $row) { $post = array(); $post["id"] = $row["id"]; $post["firstname"] = $row["firstname"]; $post["middlename"] = $row["middlename"]; $post["lastname"] = $row["lastname"]; $post["email"] = $row["email"]; $post["comments"] = $row["comments"]; //update our repsonse json data array_push($response["posts"], $post); } //echoing json response echo json_encode($response); } else { $response["success"] = 0; $response["message"] = "no post available!"; die(json_encode($response)); }
here android file i've attempted send post data read:
import java.io.ioexception; import java.io.unsupportedencodingexception; import java.util.arraylist; import java.util.hashmap; import java.util.list; import org.apache.http.httpresponse; import org.apache.http.namevaluepair; import org.apache.http.client.clientprotocolexception; import org.apache.http.client.httpclient; import org.apache.http.client.entity.urlencodedformentity; import org.apache.http.client.methods.httppost; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.message.basicnamevaluepair; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import android.app.listactivity; import android.app.progressdialog; import android.content.intent; import android.os.asynctask; import android.os.bundle; import android.view.menuitem; import android.view.view; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.listadapter; import android.widget.listview; import android.widget.simpleadapter; import android.widget.textview; import android.widget.toast; public class display extends listactivity { // progress dialog private progressdialog tdialog; jsonparser myjsonparser = new jsonparser(); private static final string sortnames = "http://leadpronow.com/demo/sortnames.php"; string sortid, sortname, sorturgency, filtered; // json ids: private static final string tag_dposts = "posts"; private static final string tag_did = "id"; private static final string tag_dfirstname = "firstname"; private static final string tag_dmiddlename = "middlename"; private static final string tag_dlastname = "lastname"; private static final string tag_demail = " email"; private static final string tag_dcomments = "comments"; // array of of our leads private jsonarray mname = null; // manages of our comments in list. private arraylist<hashmap<string, string>> mnamelist; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // note use read_comments.xml instead of our single_post.xml setcontentview(r.layout.readpost); } @override protected void onresume() { // todo auto-generated method stub super.onresume(); // loading comments via asynctask new loadnames().execute(); } public void updatejsondata() { httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(sortnames); try { intent in = getintent(); filtered = in.getstringextra("filtered"); sortid = in.getstringextra("sortid"); sortemail = in.getstringextra("sortemail"); sorturgency = in.getstringextra("sorturgency"); list<namevaluepair> namevaluepairs = new arraylist<namevaluepair> (4); namevaluepairs.add(new basicnamevaluepair("afilter", filtered)); namevaluepairs.add(new basicnamevaluepair("asortid", sortid)); namevaluepairs.add(new basicnamevaluepair("asortemail",sortemail)); namevaluepairs.add(new basicnamevaluepair("asorturgency",sorturgency)); httppost.setentity(new urlencodedformentity(namevaluepairs)); httpresponse httpresponse = httpclient.execute(httppost); } catch (clientprotocolexception e1) { // todo auto-generated catch block e1.printstacktrace(); } catch (ioexception e1) { // todo auto-generated catch block e1.printstacktrace(); } mnameslist = new arraylist<hashmap<string, string>>(); jsonparser jparser = new jsonparser(); jsonobject json = jparser.getjsonfromurl(sortnames); try { mleads = json.getjsonarray(tag_dposts); // looping through posts according json object returned (int = 0; < mleads.length(); i++) { jsonobject c = mleads.getjsonobject(i); // gets content of each tag string did = c.getstring(tag_did); string dfirstname = c.getstring(tag_dfirstname); string dmiddlename = c.getstring(tag_dmiddlename); string dlastname = c.getstring(tag_dlastname); string demail = c.getstring(tag_demail); string dcomments = c.getstring(tag_dcomments); // creating new hashmap hashmap<string, string> map = new hashmap<string, string>(); map.put(tag_did, did); map.put(tag_dfirstname, dfirstname); map.put(tag_dmiddlename, dmiddlename); map.put(tag_dlastname, dlastname); map.put(tag_demail, demail); map.put(tag_dcomments, dcomments); // adding hashlist arraylist mleadslist.add(map); } } catch (jsonexception e) { e.printstacktrace(); } } /** * inserts parsed data listview. */ private void updatelist() { // listactivity need set list adapter, , in order // // that, need create listadapter. simpleadapter, // utilize our updated hashmapped arraylist, // use our single_post xml template each item in our list, // , place appropriate info list // correct gui id. order important here. listadapter adapter = new simpleadapter(this, mnameslist, r.layout.singlelead, new string[] { tag_dfirstname, tag_dmiddlename, tag_dlastname, tag_did, tag_demail, tag_dcomments}, new int[] { r.id.dlfirstname, r.id.dlmiddlename, r.id.dllastname, r.id.dlid, r.id.dlemail, r.id.dlcomments}); setlistadapter(adapter); listview lv = getlistview(); lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view v, int position, long id) { // getting values selected listitem string longid = ((textview) v.findviewbyid(r.id.id)).gettext() .tostring(); // starting new intent intent in = new intent(getapplicationcontext(), editusers.class); // sending pid next activity in.putextra("listitem", longid); // starting new activity , expecting response startactivity(in); } }); } public class loadleads extends asynctask<void, void, boolean> { @override protected void onpreexecute() { super.onpreexecute(); tdialog = new progressdialog(leaddisplay.this); tdialog.setmessage("loading leads..."); tdialog.setindeterminate(false); tdialog.setcancelable(true); tdialog.show(); } @override protected boolean doinbackground(void... arg0) { updatejsondata(); return null; } @override protected void onpostexecute(boolean result) { super.onpostexecute(result); tdialog.dismiss(); updatelist(); } } }
so need id, firstname, middlename, lastname, email , comments show in listview. error there no posts available.
07-31 09:58:43.943: e/json parser(13176): error parsing data org.json.jsonexception: end of input @ character 0 of 07-31 09:58:43.943: w/system.err(13176): org.json.jsonexception: no value posts 07-31 09:58:43.943: w/system.err(13176): @ org.json.jsonobject.get(jsonobject.java:354) 07-31 09:58:43.943: w/system.err(13176): @ org.json.jsonobject.getjsonarray(jsonobject.java:544) 07-31 09:58:43.943: w/system.err(13176): @ com.example.mysqltest.leaddisplay.updatejsondata(leaddisplay.java:151) 07-31 09:58:43.943: w/system.err(13176): @ com.example.mysqltest.leaddisplay$loadleads.doinbackground(leaddisplay.java:252) 07-31 09:58:43.943: w/system.err(13176): @ com.example.mysqltest.leaddisplay$loadleads.doinbackground(leaddisplay.java:1) 07-31 09:58:43.943: w/system.err(13176): @ android.os.asynctask$2.call(asynctask.java:287) 07-31 09:58:43.943: w/system.err(13176): @ java.util.concurrent.futuretask.run(futuretask.java:234) 07-31 09:58:43.943: w/system.err(13176): @ android.os.asynctask$serialexecutor$1.run(asynctask.java:230) 07-31 09:58:43.943: w/system.err(13176): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1080) 07-31 09:58:43.943: w/system.err(13176): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:573) 07-31 09:58:43.943: w/system.err(13176): @ java.lang.thread.run(thread.java:856) 07-31 09:58:43.963: i/endeffect(13176): abslistview.onmeasure(), getwidth()=1080,
use link
string link = "http://localhost/login.php?username=" +username+"&password="+password;
write insert or query in php , send data php passing variables in link (hint) send data android asynctask
Comments
Post a Comment