如何使用flotcharts绘制条形图聊天时将查询结果输入到两个不同的数组中

时间:2014-01-02 06:04:31

标签: php arrays flot

我在将查询结果分成两个不同的数组时遇到问题。 我的要求是这样的

[[1,3],[2,8],[3,4],[4,1],[5,0],[6,8]]
[[1,"app1"],[2,"app2"],[3,"app3"],[4,"app4"],[5,"app6"],[6,"app6"]]

这是我需要在x轴上绘制带有标签的条形图所需的数据格式。我正在尝试这样做 PHP代码

mysql_select_db($database_finalkms, $finalkms);
$query_getmaincatdetails = "SELECT `EquipmentMainCatagory`,count(EquipmentMainCatagory) FROM `assetinfo` group by EquipmentMainCatagory";
$getmaincatdetails = mysql_query($query_getmaincatdetails, $finalkms) or die(mysql_error());
$row_getmaincatdetails = mysql_fetch_assoc($getmaincatdetails);
$totalRows_getmaincatdetails = mysql_num_rows($getmaincatdetails);

现在我需要从上面的格式中获取此查询中的数据以获取条形图。 我正在尝试这个

$rows = array();


         for ($i = 1; $i <=$totalRows_getmaincatdetails ; $i++) {

         foreach($row_getmaincatdetails as $r){
          $rows[] = array( $i,(int)$r[$row_getmaincatdetails['count(EquipmentMainCatagory)']]); 

           }


       }
    // convert data into JSON format
    $jsonTable = json_encode($rows);

    print_r($jsonTable);

我无法以上述格式获取数据。请在这方面帮助我。

1 个答案:

答案 0 :(得分:0)

好像你用迭代器i和foreach循环遍历行。用以下内容简化:

$getmaincatdetails = mysql_query($query_getmaincatdetails, $finalkms) or die(mysql_error());

var $i = 1;
while ($row = mysql_fetch_assoc($getmaincatdetails))
{
    $cats[] = array( $i,(int)$row['EquipmentMainCatagory']);
    $data[] = array( $i,(int)$row['count(EquipmentMainCatagory)']);        
    $i += 1;
}

$jsonTable = json_encode(array("data" => $data, "cats" => $cats));

etc...

返回JavaScript:

$.getJSON("some.php", function(json) {

    $.plot($("#placeholder"), [
        {
            data: json['data'],
            bars: {
                 show: true
            }
         }
    ], {
        xAxis: {
            ticks: json['cats']
        }
    });
});

我的标准PHP免责声明:我不喜欢PHP,我不使用PHP,代码未经测试......