-2
prepare("SELECT delivery_id,delivery_number,confirm_rider,confirm_payment,delivery_status,item_pic FROM user_delivery WHERE phone=$email"); //executing the query $stmt->execute(); //binding results to the query $stmt->bind_result($id, $deliveryno, $confirmrider,$confirmpayment,$deliverystatus,$itempic); $product = array(); //traversing through all the result while($stmt->fetch()){ $temp = array(); $temp['delivery_id'] = $id; $temp['delivery_number'] = $deliveryno; $temp['confirm_rider'] = $confirmrider; $temp['confirm_payment'] = $confirmpayment; $temp['delivery_status'] = $deliverystatus; $temp['item_pic'] = $itempic; array_push($product, $temp); } //displaying the result in json format echo json_encode($product); ?> 但它告诉我未定义电子邮件,同时它会将值返回给我的吐司,而不是我的回收者视图版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
从您提供的代码片段来看,这似乎是一个使用PHP和MySQL的后端脚本,用于查询与特定电话号码(在这里用$email表示)相关的配送信息,并将结果以JSON格式返回给前端。您遇到的问题是“未定义电子邮件”以及数据被显示在错误的地方(吐司而不是回收者视图)。这两个问题分别属于后端逻辑处理和前端展示的问题。
确保传递参数:首先确认前端在请求这个API时是否正确地传递了email
参数。如果前端是通过GET或POST方法发送请求,请确保对应的键名是email
,并且值是有效的。
检查变量赋值:在PHP中,直接使用$email
之前,需要确保它已经被正确赋值。您可以添加一个简单的检查来确认这一点,例如:
if (!isset($_GET['email']) && !isset($_POST['email'])) {
die('Email parameter is missing.');
}
$email = isset($_GET['email']) ? $_GET['email'] : $_POST['email']; // 根据实际情况选择GET或POST
防止SQL注入:此外,直接将用户输入(如$email)拼接到SQL语句中可能会导致SQL注入攻击。建议使用预处理语句(您已经在做),但要确保绑定变量正确执行:
$stmt = $conn->prepare("SELECT delivery_id,delivery_number,confirm_rider,confirm_payment,delivery_status,item_pic FROM user_delivery WHERE phone=?");
$stmt->bind_param("s", $email); // "s" 表示字符串类型
这个问题实际上属于前端应用的范畴,通常发生在Android开发中:
检查网络请求处理:确保您的前端应用(可能是Android应用中的Activity或Fragment)正确处理了从服务器返回的数据。您应该在成功接收到JSON响应后,解析这些数据并将其传递给RecyclerView的Adapter,而不是简单地显示在一个Toast消息中。
更新RecyclerView:
notifyDataSetChanged()
或者更具体的通知方法(如notifyItemInserted(position)
)来更新UI。简而言之,对于后端,确保参数传递正确并安全处理;对于前端,确保数据接收后正确地更新RecyclerView。