2016-04-15 18 views
0

に変換することができない私は、この行のエラーを得ました。しかし、私は私のPHPコードで何が問題なのか分かりません。AndroidのデータベースはJSONObject

<?php 
    require "init.php"; 
    require "password.php"; 

    $username = $_POST["username"]; 
    $password = $_POST["password"]; 

    $statement = mysqli_prepare($con, "SELECT * FROM User WHERE username = ?"); 
    mysqli_stmt_bind_param($statement, "s", $username); 
    mysqli_stmt_execute($statement); 
    mysqli_stmt_store_result($statement); 
    mysqli_stmt_bind_result($statement, $colNo, $colUsername, $colPassword, $colName, $colHpno, $colUser_state); 

    $response = array(); 
    $response["success"] = false; 

    while(mysqli_stmt_fetch($statement)) { 
     if (password_verify($password, $colPassword)) { 
      $response["success"] = true; 
      $response["username"] = $colUsername; 
      $response["name"] = $colName; 
      $response["hpno"] = $colHpno; 
     } 
    }; 

    echo json_encode($response); 
?> 

一部の人々は私がmysqli_stmt_bind_resultために間違った順序を得たことを私に言ったが、私は、データベーステーブル内の順序に従っています。

LOGCAT:

04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err: org.json.JSONException: Value <br><h3>Database of type java.lang.String cannot be converted to JSONObject 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at org.json.JSON.typeMismatch(JSON.java:111) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:160) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:173) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at wqyap762.rprqs.LoginActivity$3.onResponse(LoginActivity.java:91) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at wqyap762.rprqs.LoginActivity$3.onResponse(LoginActivity.java:86) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at android.os.Handler.handleCallback(Handler.java:739) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:95) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at android.os.Looper.loop(Looper.java:135) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5254) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at java.lang.reflect.Method.invoke(Method.java:372) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
04-15 11:06:30.319 16826-16826/wqyap762.rprqs W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
+0

は、JSONテキストを貼り付ける必要があり、配列「[」、です。 – drulabs

答えて

0

あなたのようないくつかのことを使用しようとすることができます:まだそれはそれは可能かもしれないスローエラーかどう

new JSONObject("{your string}") 

、問題はサーバー側の応答です。

ブラウザーでサーバーの応答を確認したら、親オブジェクトが何であるかを確認してください。それは何かのようであれば意味、

[ 
    { 
    "success":true, 
    "username":"data", 
    "name":"name", 
    "hpno":"hpno" 
    } 
] 

は、ここでの最初の要素は、この場合には、コードの下に、

JSONArray array = new JSONArray(response); 
for(int i=0;i<array.length;i++){ 
    JSONObject obj = array.getJSONObject(i); 
} 
+0

エラーが見つかりました。それはinit.phpにあり、私は何かをエコーし​​ます。私はそれを削除した後、それは動作します。 –

関連する問題