Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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
Java 为什么我从数据库中获取的值不是公共的?_Java_Php_Android_Mysql_Database - Fatal编程技术网

Java 为什么我从数据库中获取的值不是公共的?

Java 为什么我从数据库中获取的值不是公共的?,java,php,android,mysql,database,Java,Php,Android,Mysql,Database,我能够通过Android中的php从mySQL数据库中接收特定值。 我可以用toast显示received值,但前提是我将toast放在try-and-catch方法中,如下所示: public void loadProducts() { StringRequest stringRequest = new StringRequest(Request.Method.GET, GLOBALBANNER_URL, new Response.Listener<St

我能够通过Android中的php从mySQL数据库中接收特定值。 我可以用toast显示received值,但前提是我将toast放在try-and-catch方法中,如下所示:

public void loadProducts() {

    StringRequest stringRequest = new StringRequest(Request.Method.GET, GLOBALBANNER_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {


                    try {
                        JSONArray products = new JSONArray(response);
                        JSONObject productObject = products.getJSONObject(0);
                        id = productObject.getInt("ID");
                        imageURL = productObject.getString("Image");
                        playstorelink = productObject.getString("PlayStoreLink");
                        isDislaying = productObject.getInt("isDisplaying");
                        displayingTimes = productObject.getInt("DisplayingTimes");


                        Toast.makeText(MainActivity.this, "URL MainActivity: " + playstorelink , Toast.LENGTH_SHORT).show();


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {


            Toast.makeText(MainActivity.this , error.getMessage(), Toast.LENGTH_SHORT).show();


        }
    });

    Volley.newRequestQueue(MainActivity.this).add(stringRequest);
}
为什么我只能使用try-and-catch方法中的值? 我希望它是公开的

我将我的变量声明为公共:

public int id;
public String playstorelink;
public String imageURL;
public int isDislaying;
public int displayingTimes;
我对Android相当陌生,不知道为什么它不起作用。 我只需要处理数据库中的这5个值

以下是我的PHP脚本:

<?php

    $servername = "localhost";
    $username = "censored";
    $password = "censored";
    $dbName = "censored";

    $conn = new mysqli($servername, $username, $password, $dbName);

    if(!$conn){
        die("Connection Failed. ". mysqli_connect_error());

    }

    $response = array();

    $sql_query = "SELECT ID, Image, PlayStoreLink, isDisplaying, DisplayingTimes FROM globalbanner";
    $result = mysqli_query($conn ,$sql_query);

    if(mysqli_num_rows($result) > 0){ 
        while($row = mysqli_fetch_assoc($result)){

             array_push($response, $row);

        }


    }else{
        $response['success'] = 0;
        $response['message'] = 'No data';
    }

echo json_encode($response);
mysqli_close($conn);
?>


谢谢。

loadProducts
在发送请求时完成,而不是在收到响应时完成。当响应可用时,将执行响应侦听器。此时,您的
onCreate
已完成。@f1sh好的,谢谢,那么如何处理这些值呢?playstorelink etc
loadProducts
在发送请求时完成,而不是在收到响应时完成。当响应可用时,将执行响应侦听器。此时,您的
onCreate
已完成。@f1sh好的,谢谢,那么如何处理这些值呢?playstorelink等
<?php

    $servername = "localhost";
    $username = "censored";
    $password = "censored";
    $dbName = "censored";

    $conn = new mysqli($servername, $username, $password, $dbName);

    if(!$conn){
        die("Connection Failed. ". mysqli_connect_error());

    }

    $response = array();

    $sql_query = "SELECT ID, Image, PlayStoreLink, isDisplaying, DisplayingTimes FROM globalbanner";
    $result = mysqli_query($conn ,$sql_query);

    if(mysqli_num_rows($result) > 0){ 
        while($row = mysqli_fetch_assoc($result)){

             array_push($response, $row);

        }


    }else{
        $response['success'] = 0;
        $response['message'] = 'No data';
    }

echo json_encode($response);
mysqli_close($conn);
?>