从mysql select语句中获取计数,然后解析为JSON


Get count from mysql select statement then parse to JSON

我正在尝试从MySQL表中获取数据,并以以下格式创建JSON输出。

{
  "count": 1,
  "results": [
    {
      "user_id": 1,
      "login_name": "testname"
      }
    }
  ]
}

这是我用来生成JSON的PHP

$user = "1"; 
$query = $db->prepare("SELECT 
c.user_update, 
c.id
FROM (SELECT * FROM myupdates ) AS c
ORDER BY c.id DESC ");
$query->bindValue(':user_id', $user, PDO::PARAM_STR);
try {
 $query->execute();
 $rows = array();
 while ($data = $query->fetch(PDO::FETCH_ASSOC)) {
    $rows[] = $data;
}
echo "<pre>".json_encode($rows, JSON_PRETTY_PRINT);
 exit();
} catch (PDOException $e) {
     echo $error;
     exit();
}

下面是我用上面的代码得到的输出:

[
    {
      "user_id": 1,
      "login_name": "testname"
      }
    }
  ]

我需要的是输出计数("count": 1)以及JSON的其余部分

您需要将您的$rows数组添加为另一个数组的元素,以及包含计数的元素。

这应该产生期望的输出:

//Wrap results in another array
$return_array = array(
    'count' => count($rows),
    'results' => $rows
);
//Print it
echo json_encode($return_array, JSON_PRETTY_PRINT);