при сбое изображения из базы данных приложения MySQL происходит сбой - PullRequest
0 голосов
/ 24 сентября 2019
  • При извлечении изображения из базы данных по его имени происходит сбой приложения
  • Я использую сетевое изображение, чтобы сначала загрузить изображение в приложение
  • , в EditText взять имя изображения ипроверьте imageName в базе данных. Доступно или нет имя изображения.
  • выборка изображений с использованием библиотеки залпа
  • ниже кода, который я пытался получить, но этот метод не работает

xml

   <EditText
        android:layout_width="match_parent"
        android:textColor="#FFF"
        android:textColorHint="#c9c5c5"
        android:id="@+id/carname"
        android:layout_marginTop="10dp"
        android:inputType="text"
        android:hint="Enter image name !"
        android:layout_height="wrap_content" />
    <Button
        android:layout_width="match_parent"
        android:textColor="#FFF"
        android:background="#606062"
        android:text="Fetch"
        android:layout_gravity="center"
        android:padding="20dp"
        android:textAllCaps="false"
        android:id="@+id/viewButton"
        android:layout_marginTop="10dp"
        android:layout_height="wrap_content" />

    <com.android.volley.toolbox.NetworkImageView
        android:layout_height="300dp" 
        android:layout_width="match_parent"
        android:id="@+id/previewimage"/>

Java

 private void FetchImage() {
        {
            StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://192.168.43.63/datauploader/fetch_image.php",
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            try {
                                JSONObject res = new JSONObject(response);
                                JSONArray thread = res.getJSONArray("image");
                                for (int i = 0; i < thread.length(); i++) {

                                JSONObject obj = thread.getJSONObject(0);
                                    url  = obj.getString("image");
                                }
                                imageLoader.get(url, ImageLoader.getImageListener(previewImage
                                        ,0,android.R.drawable
                                                .ic_dialog_alert));
                                previewImage.setImageUrl(url, imageLoader);


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

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

                        }
                    }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> params = new HashMap<>();
                    params.put("title",editText.getText().toString().trim());
                    return params;
                }
            };
            RequestQueue requestQueue = Volley.newRequestQueue(mActivity);
            requestQueue.add(stringRequest);
        }
    }

PHP

   <?php

if($_SERVER['REQUEST_METHOD']=='POST'){
    $name = $_POST['title'];

$username="localhost";
$hostname="root";
$password="";
$dbname="android";
$conn=mysqli_connect($username,$hostname,$password,$dbname);


$sql = "SELECT `image` FROM `products` WHERE title='$name'";

$response = array();


$result = $conn->query($conn,$sql) or die (mysqli_error($conn));



    if (!empty($result)) {
        if (mysqli_num_rows($result) > 0) {

            $result = mysqli_fetch_array($result);

            $data = array();
               $data["id"] = $result["id"];
            $data["title"] = $result["title"];
            $data["image"] = $result["image"];


            // success
            $response["success"] = 1;
            $response["image"] = array();

            array_push($response["image"], $data);


            echo json_encode($response);
        } else {

            $response["success"] = 0;
            $response["message"] = "No data found";

            echo json_encode($response);
        }
    } else {

        $response["success"] = 0;
        $response["message"] = "No data found";

        // echo no users JSON
        echo json_encode($response);
    }
 }else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}
?>

logcat

org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
2019-09-25 10:01:37.225 25759-25759/com.example.datauploader W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
2019-09-25 10:01:37.225 25759-25759/com.example.datauploader W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:160)
2019-09-25 10:01:37.225 25759-25759/com.example.datauploader W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:173)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.example.datauploader.ViewCar$2.onResponse(ViewCar.java:80)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.example.datauploader.ViewCar$2.onResponse(ViewCar.java:76)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:82)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:29)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at android.os.Handler.handleCallback(Handler.java:751)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at android.os.Looper.loop(Looper.java:154)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6119)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
2019-09-25 10:01:37.226 25759-25759/com.example.datauploader W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
...