php - json_encode 返回下一行值 - PHP PDO SQL HighCharts

标签 php mysql pdo highcharts

当尝试在 foreach() 中使用数组中的 json_encode 时,数据会移动到下一个值,例如:

我有这个表,它来自相同的查询 + php:

Table

当使用 json_encode 尝试将此表数据放入 highcharts 时,我的结果如下:

[{"name":"User1","data":[0,2,0,0]},{"name":"User2","data":[0,2,0,0,2,0,2,4]}]

因此它将 User1 的数据移至 User2 的数据

我想要的结果是:

[{"name":"User1","data":[0,2,0,0]},{"name":"User2","data":[2,0,2,4]}]

这是我的代码:

$uniqueHours = array();
$series = array();
$data = array();

foreach ($pdo->query("SELECT DATEPART(HOUR, AL.EndDateTime) AS 'EndHour'
                    FROM ActivityLog AL
                    WHERE
                    ".$where."
                    ORDER BY AL.EndDateTime, 'EndHour' DESC") as $row)
{

    if ( in_array($row['EndHour'], $uniqueHours) ) {
        continue;
    }
    $uniqueHours[] = $row['EndHour'];
}

$ODsql = "SELECT * FROM Users";
foreach ($pdo->query($ODsql) as $row)
{

    echo '<tr>';

    $SCardNumber   = $row['CardNumber'];
    $SEmployeeName = $row['Username'];

    echo '<td>'.$SEmployeeName.'</td>';

    $chartValues = "";

    foreach($uniqueHours as $hour)
    {

        $countSQL= $pdo->prepare("SELECT DISTINCT(COUNT(AL.TerminalNumber)) AS TOTALS
                FROM ActivityLog AL, WavePick WP
                WHERE AL.TransactionType = 'SPK' AND WP.PickedQty > 0
                AND DATEPART(HOUR, AL.EndDateTime) = ".$hour."
                AND AL.StartDateTime >= '".$StartDate." 00:00:00.000' AND AL.EndDateTime <= '".$StartDate." 23:59:59.000'
                AND AL.OrderNumber = WP.OrderNumber
                AND AL.CardNumber = '".$SCardNumber."'
                ");
        $countSQL->execute();
        $result   = $countSQL->fetch(PDO::FETCH_OBJ);
        $row_count = $result->TOTALS;
        $totals[] = $result->TOTALS;

        echo '<td>'.$row_count.'</td>';


    }

    echo '</tr>';

    $series['name'] = $SEmployeeName;
    $series['data'] = $totals;
    array_push($data,$series);

}

我实际上还没有将其放入图表中,因为数据无效。 我用它来返回结果:

            echo "<div class='well'>";
print json_encode($results, JSON_NUMERIC_CHECK);
echo "</div>";

如何让此数据仅针对其链接到的每个用户显示?

最佳答案

在此循环之前:

foreach($uniqueHours as $hour) 

清空 $total 数组

 $total=array();
 foreach($uniqueHours as $hour) 

关于php - json_encode 返回下一行值 - PHP PDO SQL HighCharts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733746/

相关文章:

php - MediaWiki 安装问题

php - TCPDF - 特殊字符(例如 : • ) showing up as diamond question mark

javascript - Video.js - 使其能够响应不同尺寸

php - 准备好的语句的绑定(bind)参数中的第一个参数(?)/值(?)是什么?

MySQL - 更新选择问题

javascript - 我希望当我单击编辑图像时可以使用编辑功能

javascript - 如何在 jQuery 中获取文本框的更新值

php mysql foreach循环重复结果

PHP/PDO MariaDB Galera 集群

php - 仅在需要时自动连接到 PDO