Php 仅获取一列的JSON格式

Php 仅获取一列的JSON格式,php,mysql,Php,Mysql,到目前为止,我还不熟悉PHP,我设法从数据库中获得了以下JSON格式的输出。我创建了一个返回workorderName的数组结果,但我想在同一个数组中获得workOrderId,以便在android字符串请求中使用它 { "result": [ { "$workOrderName": "electrician" }, { "$workOrderName": "plumber"

到目前为止,我还不熟悉PHP,我设法从数据库中获得了以下JSON格式的输出。我创建了一个返回workorderName的数组结果,但我想在同一个数组中获得workOrderId,以便在android字符串请求中使用它

   {
    "result": [
        {
            "$workOrderName": "electrician"
        },
        {
            "$workOrderName": "plumber"
        },
        {
            "$workOrderName": "carpenter"
        }
    ]
}
我的php代码是

<?PHP
require_once('connection.php');
$workName = "SELECT work_order_id,workorder_name FROM workorder_category";
$con=mysqli_connect($server_name,$user_name,$password,$db);
$r = mysqli_query($con,$workName);
$result = array();
$resultArr = array('success' => true);
    while($row = mysqli_fetch_array($r)){
        array_push($result,array('$workOrderName'=>$row['workorder_name']));
        }
echo json_encode(array('result'=>$result));
mysqli_close($con);
?>

您需要调整代码,以便在数组中添加
$workOrderId
,如下所示

array_push($result,array(
'$workOrderId' => $row['work_order_id']
'$workOrderName' => $row['workorder_name']
));

我很确定您不是有意将
$
放在键中,但这样做更简单,可以将表中的列名(work\u order\u id,workorder\u name)作为键提供给您。确保使用mysqli\u fetch\u assoc:

while($row = mysqli_fetch_assoc($r)){
    $result[] = $row;
}
如果要更改键,则可以在查询中对其进行别名,并使用上述选项:

$workName = "SELECT work_order_id AS workOrderID, workorder_name AS workOrderName FROM workorder_category";
或者您可以构建阵列:

$result[] = array('workOrderID'   => $row['work_order_id'],
                  'workOrderName' => $row['workorder_name']);

将MySQL表作为ascii数据表与示例数据共享,或者提供一个sqlfiddle.com感谢您提供此代码片段,这可能会提供一些有限的短期帮助。通过说明为什么这是一个很好的解决问题的方法,并向未来有其他类似问题的读者解释它的长期价值。请编辑您的答案以添加一些解释,包括您对定义变量所做的假设:第9行C:\xampp\htdocs\ttpms\spinnerData.php中的行
{“结果”:{“$workOrderId”:null,“$workOrderName”:null,”0:{“workorder\u name”:“电工”},“1:{“workorder\u name”:“水管工”},“2:{“workorder\u name”:“carpenter”}
$result[] = array('workOrderID'   => $row['work_order_id'],
                  'workOrderName' => $row['workorder_name']);