You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:43:26