PHP新手求助:如何在JSON返回结果中同时包含workOrderId与workOrderName
解决方法:给JSON结果添加workOrderId字段
嘿,作为PHP新手碰到这种小问题很正常,我来帮你搞定~你的查询语句其实已经选对了需要的两个字段,只是在构造返回数组的时候漏加了workOrderId而已,调整一下代码就行:
修改后的完整PHP代码片段
<?PHP require_once('connection.php'); // 你的查询语句已经包含了work_order_id和workorder_name,这部分保留 $workNameQuery = "SELECT work_order_id, workorder_name FROM workorder_category"; // 执行查询(注意:这里假设你的数据库连接变量是$conn,来自connection.php,如果不是请替换成实际变量名) $queryResult = mysqli_query($conn, $workNameQuery); // 初始化返回的数组结构 $response = array(); $response['result'] = array(); // 循环读取每一行数据 while ($row = mysqli_fetch_assoc($queryResult)) { // 把workOrderId和workOrderName都放进同一个子数组 $workItem = array( "$workOrderId" => $row['work_order_id'], "$workOrderName" => $row['workorder_name'] ); // 将子数组添加到result数组中 array_push($response['result'], $workItem); } // 设置响应头为JSON格式,确保Android端能正确解析 header('Content-Type: application/json'); // 把数组转成JSON字符串输出 echo json_encode($response); ?>
关键调整点说明
- 保留正确的查询语句:你原本的
SELECT已经包含了work_order_id和workorder_name,这部分不需要修改 - 构造包含双字段的子数组:在循环读取数据库行时,不再只添加
$workOrderName,而是把$workOrderId也加入到每个子数组里 - 设置JSON响应头:添加
header('Content-Type: application/json')能让Android的StringRequest正确识别返回的是JSON数据,避免解析出错
修改后的JSON输出效果
调整后你会得到包含双字段的JSON,这样Android端就能同时获取到工单ID和名称了:
{
"result": [
{ "$workOrderId": "1", "$workOrderName": "electrician" },
{ "$workOrderId": "2", "$workOrderName": "plumber" },
{ "$workOrderId": "3", "$workOrderName": "carpenter" }
]
}
小提示:如果你的数据库连接用的是PDO而不是mysqli,代码逻辑是一样的,只是执行查询和读取数据的方法略有不同,核心都是把两个字段放进同一个子数组里~
内容的提问来源于stack exchange,提问作者Chandu
相关产品推荐
相关产品推荐

