【问题标题】:How to fetch records for json in array using php?如何使用 php 获取数组中 json 的记录?
【发布时间】:2017-05-23 22:46:33
【问题描述】:
$emparray=array();
    while($row = mysqli_fetch_array($result,MYSQL_NUM))
    {
        foreach ($row as $key => $value)
        {
            if ($value == '')
            {
                $row[9] ='We follow-up you';
            }
        }
        $emparray[] = array
         ('success' => true,
          'message' => "audio saved Successfully!",
         array('client_cname' => $row[2],
            'future_followup' => $row[8],
            'notes' => $row[9]));             

    }                

** 正如您在上面看到的,这是我使用 while 循环从数据库中获取记录的代码。 问题是我得到了所有记录,但有不同的 arrys。我只希望它在 1 个带有索引的数组中**

    [
    {
        "success": true,
        "message": "audio saved Successfully!",
        "0": {
            "client_cname": "Hhhs",
            "future_followup": "4 Jan 2017 05:17 PM",
            "notes": "hey"
        }
    },
    {
        "success": true,
        "message": "audio saved Successfully!",
        "0": {
            "client_cname": "Hcjc",
            "future_followup": "4 Jan 2017 06:17 PM",
            "notes": "hey"
        }
    }
]

以上是我的 O/P

我想要下面的格式,请帮助我。

{
    "status": "true",
    "message": "Audio Saved successfully!"
   [
     {
            "client_cname": "Atul",
         “future_followup": “”,
         “notes": “”,
     },
    {
            "client_cname": "Atul",
         “future_followup": “”,
         “notes": “”,
     }
   ]
}

如果我从 $emparray 中删除 ->[ ] 那么我将只得到表格的最后一行,如下面的代码

{
    "success": true,
    "message": "audio saved Successfully!",
    "0": {
        "client_cname": "Hcjc",
        "future_followup": "4 Jan 2017 06:17 PM",
        "notes": "hey"
         }
}

但我想要这种索引为 0、1、2 等的结果。

请帮助我。提前致谢。

【问题讨论】:

  • 您想要的格式不是有效的 JSON
  • ohhh 但是如果我想要 1 个带索引的单个数组中的所有行

标签: php mysql arrays json rest


【解决方案1】:

这是你需要做的:

if(mysqli_num_rows($result)>0) { //if there are any results
  //initialise the array with the first two values
  $emparray = array(
    'success' => true,
    'message' => "audio saved Successfully!");
}

while($row = mysqli_fetch_array($result,MYSQL_NUM))
{
    foreach ($row as $key => $value)
    {
        if ($value == '')
        {
            $row[9] ='We follow-up you';
        }
    }

     //append each data item as an array
     $emparray[] = array('client_cname' => $row[2],
        'future_followup' => $row[8],
        'notes' => $row[9]));             

}        

这也将自动以数字方式索引所有其他数组,从 0 开始。

【讨论】:

  • 很高兴我能帮上忙。祝福你!
【解决方案2】:
May be this is more better way to deal with.

$dataSet = array();
    while ($row = mysqli_fetch_array($result, MYSQL_NUM)) {
        foreach ($row as $key => $value) {
            if ($value == '') {
                $row[9] = 'We follow-up you';
            }
        }
        $dataSet[] = array('client_cname' => $row[2],
            'future_followup' => $row[8],
            'notes' => $row[9]);
    }

    $emparray = array
    ('success' => true,
        'message' => "audio saved Successfully!",
        'data' => $dataSet);
    echo json_encode($emparray);          

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多