从SQL表到JSON到PHP

use*_*729 7 php mysql json

我几天来一直在努力解决这个问题而且找不到合适的解决方案.

我想通过PHP从这个数据库表中检索数据:

数据库表

而且,再次使用php,有一个类似于此的JSON输出:

[{
"label": "2013-01-07",
"value": "4"
}, {
    "label": "2013-01-06",
    "value": "65"
}, {
    "label": "2013-01-05",
    "value": "96"
}]
Run Code Online (Sandbox Code Playgroud)

我写了一个函数,从表中检索信息,但我不能按正确的顺序排列它们,也有更好的方法来做它.

function getUsersCountOnDate()
{
    $result = mysql_query("Select FROM_UNIXTIME(regtime, '%Y-%m-%d') as date, count(FROM_UNIXTIME(regtime, '%Y-%m-%d')) as count from users group by FROM_UNIXTIME(regtime, '%Y-%m-%d') order by FROM_UNIXTIME(regtime, '%Y-%m-%d') DESC");
    while($row = mysql_fetch_array($result)){
    $date[] = $row['date'];
    }

    $result = mysql_query("Select FROM_UNIXTIME(regtime, '%Y-%m-%d') as date, count(FROM_UNIXTIME(regtime, '%Y-%m-%d')) as count from users group by FROM_UNIXTIME(regtime, '%Y-%m-%d') order by FROM_UNIXTIME(regtime, '%Y-%m-%d') DESC");
    while($row = mysql_fetch_array($result)){
    $count[] = $row['count'];
    }

    $merged = array_merge($date, $count);

    return json_encode($merged);
}
Run Code Online (Sandbox Code Playgroud)

我检索的是这样的:["2016-03-18","2016-03-13","2016-03-11","2016-03-06","2016-03-04","6 ", "1", "1", "1", "1"]

有人可以帮我吗?

Ref*_*lon 3

首先,使用PDO或mysqli函数进行数据库查询。

array_merge()将把第一个数组放在第二个数组之前。例如: $array1 = array('red', 'yellow'); $array2 = array('blue', 'green'); $arrayMerged = array_merge($array1, $array2); $arrayMerged is now array(red,yellow,blue,green);

由于您正在执行的查询是相同的,因此您可以这样做:

$result = mysql_query("Select FROM_UNIXTIME(regtime, '%Y-%m-%d') as date, count(FROM_UNIXTIME(regtime, '%Y-%m-%d')) as count from users group by FROM_UNIXTIME(regtime, '%Y-%m-%d') order by FROM_UNIXTIME(regtime, '%Y-%m-%d') DESC");
    $i = 0;
    while($row = mysql_fetch_array($result)){
        $date[$i][label] = $row['date'];
        $date[$i][value] = $row['count'];
        $i++;
    }

$newArray = json_encode($date);
Run Code Online (Sandbox Code Playgroud)