安卓得到MySQL表数据 [英] Android get data from MySql table

查看:110
本文介绍了安卓得到MySQL表数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发一个Android应用程序......,我在MySQL开发了一个表,表中有一定的结果1-10值和所有值单独输入...

在我的Andr​​oid应用程序时,一个特定的值,显示该值的结果,必须采取从上表...但它无法正常工作......消息越来越像不幸的是应用程序关闭'...我将我的code在这里...请检查code,如果发现任何错误,请帮助.....

Activity.java

 公共类FirstResult扩展活动

{

        字符串PID;
        TextView的txtName的;

    //进度对话框
        私人ProgressDialog pDialog;

        // JSON解析器类
        JSONParser jsonParser =新JSONParser();


        //单品链接
           私有静态最后弦乐url_product_detials =htt​​p://iascpl.com/app/get_product_details.php;


        // JSON节点名称
            私有静态最后弦乐TAG_SUCCESS =成功;
            私有静态最后弦乐TAG_PRODUCT =产品;
            //私有静态最后弦乐TAG_PID =PID;
            //私有静态最后弦乐TAG_NUMBER =号;
            //私有静态最后弦乐TAG_PRICE =价格;
            私有静态最后弦乐TAG_DESCRIPTION =说明;


    @覆盖
    保护无效的onCreate(包savedInstanceState)

    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.firstresult_xm);




        TextView的TXT1 =(TextView中)findViewById(R.id.textView2);
        txt1.setText(getIntent()getStringExtra(name10));

        。PID = txt1.getText()的toString();


        新GetProductDetails()执行();
    }






    / **
     *背景异步任务来获得完整的产品信息
     * * /
    类GetProductDetails扩展的AsyncTask<字符串,字符串,字符串> {

        / **
         *在启动后台线程显示进度对话框
         * * /
        @覆盖
        在preExecute保护无效(){
            super.on preExecute();
            pDialog =新ProgressDialog(FirstResult.this);
            pDialog.setMessage(装载产品的详细信息,请稍候...);
            pDialog.setIndeterminate(假);
            pDialog.setCancelable(真正的);
            pDialog.show();
        }

        / **
         *获取产品信息的后台线程
         * * /
        保护字符串doInBackground(字符串... PARAMS){

            //从后台线程更新UI
            runOnUiThread(新的Runnable(){
                公共无效的run(){
                    //检查成功标签
                    诠释成功;
                    尝试 {
                        //大厦参数
                        名单<的NameValuePair> PARAMS =新的ArrayList<的NameValuePair>();
                        params.add(新BasicNameValuePair(PID,PID));

                        //获取产品的详细信息通过HTTP请求
                        //注意产品细节的URL会使用GET请求
                        JSONObject的JSON = jsonParser.makeHtt prequest(
                                url_product_detials,GET,则params);

                        //检查你的日志,JSON响应
                        Log.d(单一产品详细信息,json.toString());

                        // json的成功标签
                        成功= json.getInt(TAG_SUCCESS);
                        如果(成功== 1){
                            //成功接收产品的详细信息
                            JSONArray productObj = JSON
                                    .getJSONArray(TAG_PRODUCT); // JSON数组

                            //从JSON数组的第一个产品对象
                            的JSONObject产物= productObj.getJSONObject(0);

                            //产品,该PID发现
                            //编辑文本
                            txtName的=(的TextView)findViewById(R.id.textView3);


                            在EditText上//显示产品数据

                            txtName.setText(product.getString(TAG_DESCRIPTION));

                        }其他{
                            //没有找到产品与PID
                        }
                    }赶上(JSONException E){
                        e.printStackTrace();
                    }
                }
            });

            返回null;
        }


        / **
         *在完成后台任务之后关闭该进度对话框
         * ** /
        保护无效onPostExecute(字符串file_url){
            //关闭该对话框,一旦得到了所有细节
            pDialog.dismiss();
        }
    }



}
 

php文件

 < PHP

/ *
 *按照code将获得单品细节
 *一个产品是由产品ID标识(PID)
 * /
//数组JSON响应



$响应=阵列();




//其中包括DB连接类
require_once __DIR__。 /db_connect.php;



//连接到数据库
$ DB =新DB_CONNECT();




//检查后数据
如果(使用isset($ _ GET [PID])){
    $ PID = $ _GET ['PID'];

    //从产品表中的产品
    $结果= mysql_query(SELECT * FROM prediction其中pid = $ PID);

    如果(!空($结果)){
        //检查空结果
        如果(mysql_num_rows($结果)大于0){

            $结果= mysql_fetch_array($结果);

            $产品=阵列();
            $产品[PID] = $结果[PID];
            $产品[数量] = $结果[编号];
           // $产品[价格] = $结果[价格];
            $产品[说明] = $结果[说明]。
            $产品[created_at] = $结果[created_at];
            $产品[的updated_at] = $结果[的updated_at];


            // 成功
            $响应[成功] = 1;

            //用户节点
            $响应[产品] =阵列();

            array_push($响应[产品],$产品);

            //呼应JSON响应
            回声json_en code($响应);
        } 其他 {
            //没有产品找到
            $响应[成功] = 0;
            $响应[信息] =没有产品找到;

            //回声没有用户JSON
            回声json_en code($响应);
        }
    } 其他 {
        //没有产品找到
        $响应[成功] = 0;
        $响应[信息] =没有产品找到;

        //回声没有用户JSON
        回声json_en code($响应);
    }
} 其他 {
    //必填字段缺失
    $响应[成功] = 0;
    $响应[信息] =必填字段(S)丢失;
 

我的logcat

  11月11日至五号:44:12.701:E / AndroidRuntime(7643):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在com.example.numero.JSONParser.makeHtt prequest(JSONParser.java:63)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在com.example.numero.FirstResult $ GetProductDetails $ 1.运行(FirstResult.java:105)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在android.os.Handler.handleCallback(Handler.java:725)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在android.os.Handler.dispatchMessage(Handler.java:92)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在android.os.Looper.loop(Looper.java:137)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在android.app.ActivityThread.main(ActivityThread.java:5041)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在java.lang.reflect.Method.invokeNative(本机方法)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在java.lang.reflect.Method.invoke(Method.java:511)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11月11日至5日:44:12.701:E / AndroidRuntime(7643):在dalvik.system.NativeStart.main(本机方法)
11月11日至5日:52:08.052:E /跟踪(7805):错误打开跟踪文件:没有这样的文件或目录(2)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):致命异常:主要
11月11日至5日:56:14.171:E / AndroidRuntime(7805):android.os.NetworkOnMainThreadException
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在java.net.InetAddress.lookupHostByName(InetAddress.java:385)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在java.net.InetAddress.getAllByName(InetAddress.java:214)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在com.example.numero.JSONParser.makeHtt prequest(JSONParser.java:63)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在com.example.numero.FirstResult $ GetProductDetails $ 1.运行(FirstResult.java:105)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在android.os.Handler.handleCallback(Handler.java:725)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在android.os.Handler.dispatchMessage(Handler.java:92)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在android.os.Looper.loop(Looper.java:137)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在android.app.ActivityThread.main(ActivityThread.java:5041)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在java.lang.reflect.Method.invokeNative(本机方法)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在java.lang.reflect.Method.invoke(Method.java:511)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11月11日至5日:56:14.171:E / AndroidRuntime(7805):在dalvik.system.NativeStart.main(本机方法)
11月11日至5日:56:25.961:E /跟踪(7893):错误打开跟踪文件:没有这样的文件或目录(2)
 

解决方案

  runOnUiThread(新的Runnable(){
                    @覆盖
                    公共无效的run()
                    {
                        // TODO自动生成方法存根
                        尝试 {


                            txt3.setText(product.getString(TAG_DESCRIPTION));

                        }赶上(JSONException E){
                            // TODO自动生成的catch块
                            e.printStackTrace();
                        }
                    }
                });

            }其他{
                //没有找到产品与PID
            }
 

添加此行

  /得到JSON数组的第一个产品对象
                            的JSONObject产物= productObj.getJSONObject(0);

                            //产品,该PID发现
                            //编辑文本
                            txtName的=(的TextView)findViewById(R.id.textView3);
 

这将解决这个问题

I am developing an android app... where I developed a table in MySql and table has certain results for values of 1-10 and all the values are entered seperately ...

in my android application when a particular value is displayed the result of that value has to be taken from the table... but it is not working correctly ...the message is getting like 'unfortunately application closed'... i am adding my code here... please check the code and if found any mistake pls help.....

Activity.java

public class FirstResult extends Activity

{

        String pid;
        TextView txtName;

    // Progress Dialog
        private ProgressDialog pDialog;

        // JSON parser class
        JSONParser jsonParser = new JSONParser();


        // single product url
           private static final String url_product_detials = "http://iascpl.com/app/get_product_details.php";


        // JSON Node names
            private static final String TAG_SUCCESS = "success";
            private static final String TAG_PRODUCT = "product";
            //private static final String TAG_PID = "pid";
            //private static final String TAG_NUMBER = "number";
            //private static final String TAG_PRICE = "price";
            private static final String TAG_DESCRIPTION = "description";


    @Override
    protected void onCreate(Bundle savedInstanceState) 

    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstresult_xm);




        TextView txt1 = (TextView) findViewById (R.id.textView2);
        txt1.setText(getIntent().getStringExtra("name10"));

        pid = txt1.getText().toString();


        new GetProductDetails().execute();
    }






    /**
     * Background Async Task to Get complete product details
     * */
    class GetProductDetails extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(FirstResult.this);
            pDialog.setMessage("Loading product details. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        /**
         * Getting product details in background thread
         * */
        protected String doInBackground(String... params) {

            // updating UI from Background Thread
            runOnUiThread(new Runnable() {
                public void run() {
                    // Check for success tag
                    int success;
                    try {
                        // Building Parameters
                        List<NameValuePair> params = new ArrayList<NameValuePair>();
                        params.add(new BasicNameValuePair("pid", pid));

                        // getting product details by making HTTP request
                        // Note that product details url will use GET request
                        JSONObject json = jsonParser.makeHttpRequest(
                                url_product_detials, "GET", params);

                        // check your log for json response
                        Log.d("Single Product Details", json.toString());

                        // json success tag
                        success = json.getInt(TAG_SUCCESS);
                        if (success == 1) {
                            // successfully received product details
                            JSONArray productObj = json
                                    .getJSONArray(TAG_PRODUCT); // JSON Array

                            // get first product object from JSON Array
                            JSONObject product = productObj.getJSONObject(0);

                            // product with this pid found
                            // Edit Text
                            txtName = (TextView) findViewById(R.id.textView3);


                            // display product data in EditText

                            txtName.setText(product.getString(TAG_DESCRIPTION));

                        }else{
                            // product with pid not found
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });

            return null;
        }


        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(String file_url) {
            // dismiss the dialog once got all details
            pDialog.dismiss();
        }
    }



}

php file

<?php

/*
 * Following code will get single product details
 * A product is identified by product id (pid)
 */ 
// array for JSON response



$response = array();




// include db connect class
require_once __DIR__ . '/db_connect.php';



// connecting to db
$db = new DB_CONNECT();




// check for post data
if (isset($_GET["pid"])) {
    $pid = $_GET['pid'];

    // get a product from products table
    $result = mysql_query("SELECT *FROM prediction WHERE pid = $pid");

    if (!empty($result)) {
        // check for empty result
        if (mysql_num_rows($result) > 0) {

            $result = mysql_fetch_array($result);

            $product = array();
            $product["pid"] = $result["pid"];
            $product["number"] = $result["number"];
           // $product["price"] = $result["price"];
            $product["description"] = $result["description"];
            $product["created_at"] = $result["created_at"];
            $product["updated_at"] = $result["updated_at"];


            // success
            $response["success"] = 1;

            // user node
            $response["product"] = array();

            array_push($response["product"], $product);

            // echoing JSON response
            echo json_encode($response);
        } else {
            // no product found
            $response["success"] = 0;
            $response["message"] = "No product found";

            // echo no users JSON
            echo json_encode($response);
        }
    } else {
        // no product found
        $response["success"] = 0;
        $response["message"] = "No product found";

        // echo no users JSON
        echo json_encode($response);
    }
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

my Logcat

11-05 11:44:12.701: E/AndroidRuntime(7643):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at com.example.numero.JSONParser.makeHttpRequest(JSONParser.java:63)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at com.example.numero.FirstResult$GetProductDetails$1.run(FirstResult.java:105)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at android.os.Handler.handleCallback(Handler.java:725)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at android.os.Looper.loop(Looper.java:137)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at android.app.ActivityThread.main(ActivityThread.java:5041)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at java.lang.reflect.Method.invokeNative(Native Method)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at java.lang.reflect.Method.invoke(Method.java:511)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-05 11:44:12.701: E/AndroidRuntime(7643):     at dalvik.system.NativeStart.main(Native Method)
11-05 11:52:08.052: E/Trace(7805): error opening trace file: No such file or directory (2)
11-05 11:56:14.171: E/AndroidRuntime(7805): FATAL EXCEPTION: main
11-05 11:56:14.171: E/AndroidRuntime(7805): android.os.NetworkOnMainThreadException
11-05 11:56:14.171: E/AndroidRuntime(7805):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at com.example.numero.JSONParser.makeHttpRequest(JSONParser.java:63)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at com.example.numero.FirstResult$GetProductDetails$1.run(FirstResult.java:105)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at android.os.Handler.handleCallback(Handler.java:725)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at android.os.Looper.loop(Looper.java:137)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at android.app.ActivityThread.main(ActivityThread.java:5041)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at java.lang.reflect.Method.invokeNative(Native Method)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at java.lang.reflect.Method.invoke(Method.java:511)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-05 11:56:14.171: E/AndroidRuntime(7805):     at dalvik.system.NativeStart.main(Native Method)
11-05 11:56:25.961: E/Trace(7893): error opening trace file: No such file or directory (2)

解决方案

runOnUiThread(new Runnable() {  
                    @Override
                    public void run() 
                    {
                        // TODO Auto-generated method stub
                        try {


                            txt3.setText(product.getString(TAG_DESCRIPTION));

                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                });

            }else{
                // product with pid not found
            }

add this line after

/ get first product object from JSON Array
                            JSONObject product = productObj.getJSONObject(0);

                            // product with this pid found
                            // Edit Text
                            txtName = (TextView) findViewById(R.id.textView3);

that will solve the issue

这篇关于安卓得到MySQL表数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆