ich einen Php-Skript, das ich einige Informationen von einem BBDD zu erhalten:Daten können nicht von JSON empfangen - PHPMyAdmin
<?php
//Creating a connection
$con = mysqli_connect("localhost:3306","root","","database");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql= "SELECT * FROM tQuestions";
$result = mysqli_query($con ,$sql);
while ($row = mysqli_fetch_assoc($result))
{
$array[] = $row;
(ONLY USED ON SECOND TRY) echo $row;
}
header('Content-Type:Application/json');
echo json_encode($array);
mysqli_free_result($result);
mysqli_close($con);
?>
Als ich es auf meinem Android-App verwenden, Ich erhalte einen Nullwert . Auch wenn ich den richtigen Link gehe, erhalte ich eine Seite ohne Informationen und eine leere JSON-Datei.
Dann legte ich eine "echo $ row", um zu sehen, was ich bekomme, und ich habe eine Zeichenfolge wie folgt: "ArrayArrayArrayArray" ... Und es hat 50 "Array" -Wörter, die gleich sind die Zeilen, die ich in der Datenbank habe.
Was mache ich falsch? Ich habe auch den Android-Code:
private void getQuestionsFromDB() {
AsyncTask<Void, Void, JSONArray> asyncTask = new AsyncTask<Void, Void, JSONArray>() {
@Override
protected JSONArray doInBackground(Void... params) {
JSONArray array = null;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.am-motion.eu/scriptsapp/preguntas.php")
.build();
try {
Response response = client.newCall(request).execute();
array = new JSONArray(response.body().string());
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return array;
}
@Override
protected void onPostExecute(JSONArray array) {
try {
for (int i = 0; i < array.length(); i++) {
JSONObject object = null;
object = array.getJSONObject(i);
listQuestions.add(object.getString("Question"));
listAnswers.add(object.getString("Answer1"));
listAnswers.add(object.getString("Answer2"));
listAnswers.add(object.getString("Answer3"));
listAnswers.add(object.getString("Answer4"));
listCorrectAnswer.add(object.getString("Answer"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
asyncTask.execute();
}
Vielen Dank!
Wenn Sie die URL von Browser zugreifen, was ist der Ausgang? Werden die 'json' Daten angezeigt? –
wird nicht ausgegeben. Ich sehe eine weiße Seite mit Informationen. Aber, wenn ich "echo $ row" die Ausgabe war "ArrayArrayArray ..." – Imrik
bitte überprüfen Sie Ihre Apache Fehlerprotokoll, ich nur neugierig 'Json' Modul nicht aktivieren in Ihrem PHP –