【问题标题】:Responce from anddroid and php api is correct while data is not deleting while deleting through android App?android和php api的响应是正确的,而通过android App删除数据时没有删除数据?
【发布时间】:2025-12-17 00:40:01
【问题描述】:

在 android 应用程序上按下删除按钮时,产品记录没有从数据库中删除....而它在 android 中的响应与 Api 中的 ..Api 响应相同,通过 POSTMAN 软件检查是正确的,并且正在从数据库中删除记录。

Android 代码:

case R.id.delete:
    StringRequest request = new StringRequest(Request.Method.GET, getResources().getString(R.string.Delete_URL) + "?action=deleteProduct&product_id=" + menuItem.getItemId() + "", new Response.Listener < String > () {
        @Override
        public void onResponse(String response) {
            try {
                JSONObject jsonObject = new JSONObject(response);
                boolean error = jsonObject.getBoolean("error");
                if (error) {
                    Toast.makeText(getActivity(), "Error=>" + jsonObject.getString("error_message"), Toast.LENGTH_SHORT).show();

                } else {

                    Toast.makeText(getActivity(), jsonObject.getString("success_msg"), Toast.LENGTH_SHORT).show();

                }
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(getActivity(), "JSON error : " + e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getActivity(), error.getMessage() + "<==Error Connecting", Toast.LENGTH_SHORT).show();

        }
    });

    RequestQueue queue = Volley.newRequestQueue(getActivity());
    queue.add(request);


    break;

    }
    return false;
}
});
}
});
mProductListview.setAdapter(adapter);

php 代码

case 'deleteProduct':
    if(isset($_GET['product_id'])){
        $ID=$_GET['product_id'];
        $query="DELETE FROM `products` WHERE `product_id`='$ID'";
        if(mysqli_query($con,$query)){
            $response['error']=false;
            $response['success_msg']='Product Deleted successfully';

        }else{
            $response['error']=true;
            $response['error_message']='Product not exist';
        }
        }else{
            echo 'some worng';
        }
    break;

【问题讨论】:

  • 您确定menuItem.getItemId() 是否返回产品ID?您可以在服务器端评估查询字符串或在发出请求之前在 android 端确认它。
  • getResources().getString(R.string.Delete_URL) 这包含根 url ?
  • @Shahadat Hossain Shaki .... 是的,先生,这包含根 url
  • 然后调试响应......一切,就像你正在发送有效的参数一样。那么响应是什么......失败或成功。如果失败是什么原因。一切都应该在那里..
  • @ShahadatHossainShaki 通过调试android代码根据我的api响应是正确的......并且通过邮递员检查api给出了正确的答案......我认为有问题ma android代码

标签: php android api android-volley


【解决方案1】:

在 php 端试试这个代码:

case 'deleteProduct':
    if(isset($_GET['product_id'])){
        $ID=$_GET['product_id'];
        $query="DELETE FROM products WHERE product_id='".$ID."'";
        if(mysqli_query($con,$query)){
            $response['error']=false;
            $response['success_msg']='Product Deleted successfully';
        }
        else{
            $response['error']=true;
            $response['error_message']='Product not exist';
        }
    }else{
        echo 'some worng';
    }
break;

【讨论】:

  • 还是同样的问题
  • 您能否确认产品 ID 是否正在发送到服务器?