Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用android通过id从数据库检索数据_Android_Mysql_Listview - Fatal编程技术网

如何使用android通过id从数据库检索数据

如何使用android通过id从数据库检索数据,android,mysql,listview,Android,Mysql,Listview,我正在使用selectquery和where condition=tid从数据库中检索数据,为此我想知道如何在selectquery中向服务器传递tid。请给我任何解决方案,如何发送服务器上的tid和检索特定tid数据库中的数据。谢谢 一些代码 new GetHttpResponse(this).execute(); listCollege .setOnItemClickListener(new android.widget.AdapterView.OnItemClickListen

我正在使用selectquery和where condition=tid从数据库中检索数据,为此我想知道如何在selectquery中向服务器传递tid。请给我任何解决方案,如何发送服务器上的tid和检索特定tid数据库中的数据。谢谢

一些代码

 new GetHttpResponse(this).execute();

    listCollege .setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
            TextView tasknameOBJ=(TextView)view.findViewById(R.id.taskname);
            TextView taskidOBJ = (TextView)view.findViewById(R.id.tid);
             tid = taskidOBJ.getText().toString();
            taskname = tasknameOBJ.getText().toString();
            Toast.makeText(ListTask.this,"You selected Id is "+tid,Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(ListTask.this,GetSubTask.class);
            startActivity(intent);

            SharedPreferences sharedPreferences = ListTask.this.getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);

            SharedPreferences.Editor editor = sharedPreferences.edit();


            editor.putString(Config.TID_SHARED_PREF, tid);
            editor.putString(Config.TASKNAME_SHARED_PREF, taskname);
            //Saving values to editor
            editor.commit();
        }
    });
}
private class GetHttpResponse extends AsyncTask<Void, Void, Void>
{
    private Context context;
    String result;
    List<Task> Task_;
    public GetHttpResponse(Context context)
    {
        this.context = context;
    }

    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... arg0)
    {
        HttpService httpService = new HttpService("http://192.168.0.104/GroupBuilder/GetListTask.php");
        try
        {
            httpService.ExecutePostRequest();

            if(httpService.getResponseCode() == 200)
            {
                result = httpService.getResponse();

                System.out.println("Result       . . . "+result);

                Log.d("Result", result);
                if(result != null)
                {
                    JSONArray jsonArray = null;
                    try {
                        jsonArray = new JSONArray(result);

                        JSONObject object;
                        JSONArray array;
                        Task_ = new ArrayList<Task>();
                        for(int i=0; i<jsonArray.length(); i++)
                        {
                            task_ = new Task();
                            object = jsonArray.getJSONObject(i);

                            task_.taskname = object.getString("taskname");
                            task_.tid = object.getString("tid");

                            System.out.println("Taask Tid  "+task_.tid);
                            Task_.add(task_);
                        }
                    }
                    catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            else
            {
                Toast.makeText(context, httpService.getErrorMessage(), Toast.LENGTH_SHORT).show();
            }
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result)

    {
        proCollageList.setVisibility(View.GONE);
        listCollege.setVisibility(View.VISIBLE);
        if(Task_ != null)
        {
            ListTaskAdapter adapter = new ListTaskAdapter(Task_, context);
            listCollege.setAdapter(adapter);
        }
    }
}//

public class HttpService
{

    private ArrayList <NameValuePair> params;
    private ArrayList <NameValuePair> headers;

    private String url;
    private int responseCode;
    private String message;
    private String response;

    public String getResponse()
    {
        return response;
    }

    public String getErrorMessage()
    {
        return message;
    }

    public int getResponseCode()
    {
        return responseCode;
    }

    public HttpService(String url)
    {
        this.url = url;
        params = new ArrayList<NameValuePair>();
        headers = new ArrayList<NameValuePair>();
    }

    public void AddParam(String name, String value)
    {
        params.add(new BasicNameValuePair(name, value));
    }

    public void AddHeader(String name, String value)
    {
        headers.add(new BasicNameValuePair(name, value));
    }


    public void ExecutePostRequest() throws Exception
    {
        HttpPost request = new HttpPost(url);
        for(NameValuePair h : headers)
        {
            request.addHeader(h.getName(), h.getValue());
        }

        if(!params.isEmpty())
        {
            request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
        }

        executeRequest(request, url);
    }

    private void executeRequest(HttpUriRequest request, String url)
    {
        HttpParams httpParameters = new BasicHttpParams();
        int timeoutConnection = 10000;
        HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
        int timeoutSocket = 10000;
        HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

        HttpClient client = new DefaultHttpClient(httpParameters);
        HttpResponse httpResponse;
        try
        {
            httpResponse = client.execute(request);
            responseCode = httpResponse.getStatusLine().getStatusCode();
            message = httpResponse.getStatusLine().getReasonPhrase();

            HttpEntity entity = httpResponse.getEntity();
            if (entity != null)
            {
                InputStream instream = entity.getContent();
                response = convertStreamToString(instream);
                instream.close();
            }
        }
        catch (ClientProtocolException e)
        {
            client.getConnectionManager().shutdown();
            e.printStackTrace();
        }
        catch (IOException e)
        {
            client.getConnectionManager().shutdown();
            e.printStackTrace();
        }
    }

    private String convertStreamToString(InputStream is)
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line = null;
        try
        {
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                is.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
newgethttpresponse(this.execute();
setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
TextView tasknameOBJ=(TextView)view.findViewById(R.id.taskname);
TextView taskidOBJ=(TextView)view.findViewById(R.id.tid);
tid=taskidOBJ.getText().toString();
taskname=tasknameOBJ.getText().toString();
Toast.makeText(ListTask.this,“您选择的Id是”+tid,Toast.LENGTH\u SHORT.show();
意向意向=新意向(ListTask.this,GetSubTask.class);
星触觉(意向);
SharedReferences SharedReferences=ListTask.this.getSharedReferences(Config.SHARED\u PREF\u NAME,Context.MODE\u PRIVATE);
SharedReferences.Editor=SharedReferences.edit();
putString(Config.TID\u SHARED\u PREF,TID);
putString(Config.TASKNAME\u SHARED\u PREF,TASKNAME);
//将值保存到编辑器
commit();
}
});
}
私有类GetHttpResponse扩展异步任务
{
私人语境;
字符串结果;
列出任务列表;
公共GetHttpResponse(上下文)
{
this.context=上下文;
}
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
}
@凌驾
受保护的Void doInBackground(Void…arg0)
{
HttpService HttpService=新的HttpService(“http://192.168.0.104/GroupBuilder/GetListTask.php");
尝试
{
httpService.ExecutePostRequest();
if(httpService.getResponseCode()==200)
{
结果=httpService.getResponse();
System.out.println(“结果…”+结果);
Log.d(“结果”,结果);
如果(结果!=null)
{
JSONArray JSONArray=null;
试一试{
jsonArray=新jsonArray(结果);
JSONObject对象;
JSONArray阵列;
任务=新建ArrayList();
对于(int i=0;i
(我不知道正确的名称,只需在android studio中搜索jar文件,它肯定会在那里..找到它并将其添加到您的依赖项中,然后编译,这样只有其中的一些方法可以工作)
在你的活动中

   public class MyActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    new Async().execute();
}

class Async extends AsyncTask<String,String,String>{

    @Override
    protected String doInBackground(String... strings) {
        JSONParser parser = new JSONParser();
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("id", "1234"));
        JSONObject obj = parser.makeHttpRequest("http://192.168.0.43/myproject/test.php", "GET", params);
        System.out.println(obj.toString());

        return null;
    }
}
 }
公共类MyActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
新建异步().execute();
}
类Async扩展了AsyncTask{
@凌驾
受保护的字符串背景(字符串…字符串){
JSONParser=新的JSONParser();
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“id”,“1234”);
JSONObject obj=parser.makeHttpRequest(“http://192.168.0.43/myproject/test.php“,”GET“,params);
System.out.println(obj.toString());
返回null;
}
}
}
在php方面

 <?php
   $con = mysql_connect("localhost", "username", "password");
    $re = mysql_select_db("db_name", $con);

 $responce = array();
  $name = $_REQUEST['id'];

 $query = "select ...";
 $result = mysql_query($query, $con);
 $row = mysql_fetch_row($result);

 $responce["value"] = array();
 $data = array();
  $data["name"] = $row["name"];
    (something like that)
   array_push($responce["value"] , $data);

  echo json_encode($responce);

  ?>


您只需在httpservices中使用AddParam,请您详细解释一下,我是android新手。非常感谢您的帮助reply@ManojGayakwad检查这个答案,它包含了你的问题的解决方案和示例代码。另外,我建议使用改型或截取来进行网络调用,这些库非常容易使用c void AddParam(字符串名称,字符串值){params.add(新的BasicNameValuePair(名称,值));}使用此方法man….在为httpservice创建对象后,只需通过调用AddParam(“id”,YOURID)添加您的id)那是ALL@Mr.Popular我已经添加了AddParam方法。我添加了该方法,但我不知道如何添加我的id以及在何处进行声明。请给我解决方案或编辑我的代码。谢谢先生的回复
   public class MyActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    new Async().execute();
}

class Async extends AsyncTask<String,String,String>{

    @Override
    protected String doInBackground(String... strings) {
        JSONParser parser = new JSONParser();
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("id", "1234"));
        JSONObject obj = parser.makeHttpRequest("http://192.168.0.43/myproject/test.php", "GET", params);
        System.out.println(obj.toString());

        return null;
    }
}
 }
 <?php
   $con = mysql_connect("localhost", "username", "password");
    $re = mysql_select_db("db_name", $con);

 $responce = array();
  $name = $_REQUEST['id'];

 $query = "select ...";
 $result = mysql_query($query, $con);
 $row = mysql_fetch_row($result);

 $responce["value"] = array();
 $data = array();
  $data["name"] = $row["name"];
    (something like that)
   array_push($responce["value"] , $data);

  echo json_encode($responce);

  ?>