【问题标题】:Can't Retrieve Data From MySQL Database in Android using Volley无法使用 Volley 从 Android 中的 MySQL 数据库中检索数据
【发布时间】:2016-03-30 23:07:36
【问题描述】:

我正在尝试使用 volley 创建 android 应用程序。问题只是关于获取数据。它只返回没有列数据的列名。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText editTextId;
    private Button buttonGet;
    private TextView textViewResult;

    private ProgressDialog loading;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextId = (EditText) findViewById(R.id.editTextId);
        buttonGet = (Button) findViewById(R.id.buttonGet);
        textViewResult = (TextView) findViewById(R.id.textViewResult);

        buttonGet.setOnClickListener(this);
    }

    private void getData() {
        String id = editTextId.getText().toString().trim();
        if (id.equals("")) {
            Toast.makeText(this, "Please enter an id", Toast.LENGTH_LONG).show();
            return;
        }
        loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);

        String url = Config.DATA_URL+editTextId.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                loading.dismiss();
                showJSON(response);
            }
        },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
                    }
                });

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void showJSON(String response){
        String name="";
        String address="";
        try {
            JSONObject jsonObject = new JSONObject(response);
            JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
            JSONObject collegeData = result.getJSONObject(0);
            name = collegeData.getString(Config.KEY_NAME);
            address = collegeData.getString(Config.KEY_ADDRESS);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        textViewResult.setText("Name:\t"+name+"\nAddress:\t" +address);
    }

    @Override
    public void onClick(View v) {
        getData();
    }
}

【问题讨论】:

  • 看来您没有在任何地方使用 MySql。看看showJSON()中“response”的值是什么?
  • 为您提供建议或找到我们需要查看您的实际 JSON 响应和 Config 类的开始的问题...您的 Json 数据是否以 { 或 [ 开头?我们不知道
  • 先生,我从这个站点 (simplifiedcoding.net/…) 和它的 Mysql 中得到它,它应该返回数据但它只返回列名。它可能是简单的错误或不是.. 我只是创建 android 应用程序的新用户

标签: android android-volley


【解决方案1】:

问题出在您的 PHP 代码中 您正在使用

if($_SERVER['REQUEST_METHOD']=='GET'){

    $id  = $_GET['id'];

    require_once('dbConnect.php');

    $sql = "SELECT * FROM colleges WHERE id='".$id."'";

    $r = mysqli_query($con,$sql);

    $res = mysqli_fetch_array($r);

    $result = array();

    array_push($result,array(
        "name"=>$res['name'],
        "address"=>$res['address'],
        "vc"=>$res['vicechancellor']
        )
    );

    echo json_encode(array("result"=>$result));

    mysqli_close($con);

}

但这不会总是显示 Null 值而不会出错不要在代码中使用 array_push 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-27
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多