我正在尝试使用json格式输出我的数据库信息。技巧是teamA / teamB是数据库中的一个值。
数据库是这样的:
Team timezome time fulldate
teamA MST 8:30 PM 10-30-2014
teamA CST 8:30 PM 10-30-2014
我需要像这样格式化。
{
teamA: {
timezone: "MST",
time: "8:30 PM",
fullDate: "10-30-2014"
},
teamB: {
timezone: "CST",
time: "8:30 PM",
fullDate: "10-30-2014"
}
}
我可以连接到所有内容并获得基本的json输出,我只是不能像我想要的那样将其格式化。
感谢您的帮助。
基思
格式我正在使用
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['team'] = $row['team'];
$row_array['date'] = $row['date'];
$row_array['time'] = $row['time'];
//push the values in the array
array_push($json_response,$row_array);
}
echo json_encode($json_response);
并且正在输出
[
{
team: "teamA",
date: "11-29-14",
time: "9:30"
},
{
team: "teamB",
date: "11-29-14",
time: "9:30"
}
答案 0 :(得分:0)
可能最简单的方法是迭代结果集,将Team
的值指定为返回数组的索引,例如$ret
,如下例所示。将行分配给我们刚刚创建的索引,然后从根据Team
数组的结果构建的内部数组中取消设置$row
。
$mysqli = new mysqli('host', 'user', 'pass', 'db');
$stmt = $mysqli->query('select * from my_table');
$ret = array();
while($row = $stmt->fetch_all(MYSQLI_ASSOC)):
$ret[$row['Team']] = $row;
unset($ret[$row['Team']]['Team']);
endwhile;
echo json_encode($ret);
这应该产生所需的输出。
答案 1 :(得分:0)
$sql = "select * from tblname";
$res = mysql_query($sql);
While ($temp = mysql_fetch_assoc($res)) {
$arr [$res ['Team']] ['timezone'] = $res['timezone'];
// do it for other two fields
}
注意:不推荐使用mysql_
。此代码仅用于解释和示例目的。