【发布时间】: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