Мне нужно получить возвращаемые значения из моей базы данных и показать их на экране. Поэтому я написал один файл php и файл класса, используя функцию asynctask, чтобы вернуть данные обратно на экран, но это не сработало !!!!Использование asynctask для получения данных из базы данных
Пытался написать этот класс, используя AsyncTask для связи с базой данных:
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
/**
* Created by QingYong on 21/08/2015.
*/
public class EditProfile extends Activity {
String user,password,name_entered,username_returned;
String handphone_no;
EditText username,password_entered,name,handphone;
JSONParser jsonParser = new JSONParser();
private static final String LOGIN_URL = "http://powerbankk.16mb.com/profile.php";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editprofile);
Bundle extras = getIntent().getExtras();
if (extras != null) {
user = extras.getString("username");
}
new AttemptLogin().execute(user);
username = (EditText) findViewById(R.id.username_signup);
password_entered = (EditText) findViewById(R.id.password);
name = (EditText) findViewById(R.id.name);
handphone = (EditText) findViewById(R.id.handphone);
String messageString = username_returned;
username.setText(messageString);
String messageString1 = password;
password_entered.setText(messageString1);
String messageString2 = handphone_no;
handphone.setText(messageString2);
String messageString3 = name_entered;
name.setText(messageString3);
}
class AttemptLogin extends AsyncTask<String, String, JSONObject> {
protected JSONObject doInBackground(String... args) {
// TODO Auto-generated method stub
// here Check for success tag
try {
HashMap<String, String> params = new HashMap<>();
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);
if (json != null) {
Log.d("JSON result", json.toString());
params.put("user", args[0]);
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(JSONObject json) {
if (json != null) {
Toast.makeText(EditProfile.this, json.toString(),
Toast.LENGTH_LONG).show();
try {
username_returned = json.getString("username");
password = json.getString("password");
handphone_no = json.getString("handphone");
name_entered = json.getString("name");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}
и это мой PHP-файл:
<?php
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$username=$_POST["user"];
$query = " SELECT name,username,password,handphone FROM Login WHERE username='$username'";
$sql=mysqli_query($conn, $query);
if (!$sql) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysqli_fetch_row($sql);
$response["name"] = $row[0];
$response["username"] = $row[1];
$response["password"] = $row[2];
$response["handphone"] = $row[3];
die(json_encode($response));
mysql_close();
?>
Где я пошло не так?
* Это не сработало !!! *: Пожалуйста, не заставляйте нас угадывать. Расскажите, как это не сработало, что на самом деле произошло и что вы ожидали. – adelphus
Вызов 'params.put (" user ", args [0]);' сразу после инициализации 'params'. Вы делаете 'JSONObject' без« пользователя »в основном. –
@RakeebRajbhandari Итак, как я могу это решить? –