使用json和php的Flot

使用json和php的Flot,php,json,mysqli,flot,Php,Json,Mysqli,Flot,我用php制作了一个json数组。它可以工作,但它只提供来自第一个标签的“数据”结果,而不提供其余的结果。除此之外,它每次都以一个数字开始。我怎样才能解决这个问题 $sql = $site->mysqli->query("SELECT id, title, event_start_date FROM events"); while($row = $sql->fetch_assoc()) { $dataset[] = array('label

我用php制作了一个json数组。它可以工作,但它只提供来自第一个标签的“数据”结果,而不提供其余的结果。除此之外,它每次都以一个数字开始。我怎样才能解决这个问题

    $sql = $site->mysqli->query("SELECT id, title, event_start_date FROM events");
    while($row = $sql->fetch_assoc())   {

        $dataset[] = array('label' => $row['title']);

        $sql2 = $site->mysqli->query("SELECT timestamp, event_id, COUNT(timestamp) AS row_count FROM order_products WHERE event_id = '".$row['id']."' GROUP BY DATE(FROM_UNIXTIME(timestamp))");
        $count2 = $sql2->num_rows;
        while($row2 = $sql2->fetch_assoc())   {

            $dataset['data'][] = array(intval($row2['timestamp'] * 1000), (int)$row2['row_count']);

        }

    }
    $results[]=$dataset;

die(Json_encode($results));
结果:

    [{"0":{"label":"Label 1"},"data":[[1392894348000,10],                   
        [1392998502000,3],[1393066962000,5],[1393262541000,3],          
        [1393577348000,5],[1393704543000,2],[1393780878000,1],
        [1393882353000,3],"1":{"label":"Label 2"},"2":{"label":"Label 3"}}]

您应该为每个事件清空
$dataset

$sql = $site->mysqli->query("SELECT id, title, event_start_date FROM events");
while($row = $sql->fetch_assoc())   {

    $dataset = array('label' => $row['title'], 'data' => array());

    $sql2 = $site->mysqli->query("SELECT timestamp, event_id, COUNT(timestamp) AS row_count FROM order_products WHERE event_id = '".$row['id']."' GROUP BY DATE(FROM_UNIXTIME(timestamp))");
    $count2 = $sql2->num_rows;
    while($row2 = $sql2->fetch_assoc())   {

        $dataset['data'][] = array(intval($row2['timestamp'] * 1000), (int)$row2['row_count']);

    }
    $results[]=$dataset;
}

die(json_encode($results));

考虑到您当前的结果,您希望的结果布局是什么?所有的
数据
都在同一个数组中,就像您正在执行的
$dataset['data'][]=…
一样。另外,您可以使用
JOIN
在1个查询中执行此操作,而不是使用嵌套查询。这一行使数组在每次使用数字时启动:
$dataset[]=array('label'=>$row['title'])
除了:
{“0”:
等之外,结果很好。最重要的是,它不会对其余标签给出任何结果。输出仅给出标签1的数据,但在数据库中也有标签2和标签3的数据,但没有显示。当我替换
$dataset[]
$dataset['data'][]
对于回音,我会得到一个正确的输出,将其放入数组中。因此,我认为它必须与此相关。。