MYSQL / JSON输出计数&百分比

时间:2015-09-23 19:53:09

标签: php mysql json

我目前拥有的......

[{" status":" C - Net&电话"" KPI":"铅""计数":" 12"}

我想要做的就是把它拿出来 的 [{"状态":"值"" KPI":"值""计数&#34 ;: " 12""百分比":"%32.42"}

以下是我的php代码。

<?php 
        $Connection = mysql_connect('localhost', '', '');
            if (!$Connection) {
                die('ACCESS DENIED' . mysql_error());
        }

        $Database = mysql_select_db('main', $Connection);
            if (!$Database) {
                die ('DIED' . mysql_error());
        }

         $ $query = " SELECT pin_status,kpi_type,COUNT(*) FROM main_pins GROUP BY pin_status;  ";

            $result = mysql_query( $query );
                if ( !$result ) {
                    $ErrorMessage  = 'Invalid query: ' . mysql_error() . "\n";
                    $ErrorMessage .= 'Whole query: ' . $query;
                die( $ErrorMessage );
        }

        $JSON_output = array();
            while ( $row = mysql_fetch_assoc( $result ) )
        {

        $JSON_output[] = array('status'         => $row['pin_status'],
                                'kpi'           => $row['kpi_type'], 
                                'count'         => $row['COUNT(*)'],
                                 'percentage'     => $row[????], // what I would like added
                            );
        }

header( "Content-Type: application/json" );

    $JSON_output = json_encode($JSON_output);

echo $JSON_output . "";

mysql_close($Connection);
?>

2 个答案:

答案 0 :(得分:3)

如果数据库中有一个包含百分比的列,那么您应该选择:

$query = " SELECT `pin_status`, `kpi_type` ,COUNT(*) AS `current_count`, `percentage` FROM `main_pins` GROUP BY `pin_status`;  ";

如果你想计算某些东西,你可以选择在查询或PHP中进行。例如,在PHP中你可以这样做:

while($row = mysql_fetch_assoc( $result )) {
    $percentage = ($row[$x]/$y) * 100; // supply $x and $y
    $JSON_output[] = array('status'         => $row['pin_status'],
                       'kpi'           => $row['kpi_type'], 
                       'count'         => $row['current_count'],
                       'percentage'     => $percentage
    );
}

正如评论中所述

如果可以,你应该stop using mysql_* functions。已在PHP 7中删除These extensions。了解preparedPDOMySQLi语句,并考虑使用PDO,it's really not hard

答案 1 :(得分:1)

将您的查询更新为这样。

$query = "SELECT pin_status, kpi_type, Count(*) as count,((Count(*)  * 100.0)/ (select Count(*) FROM main_pins)) AS Percentage
                    FROM main_pins
                    GROUP BY pin_status, kpi_type
                    ORDER BY pin_status, kpi_type
                    DESC";

添加到您的JSON输出。

$JSON_output[] = array('Status'         => $row['pin_status'],
                       'KPI'            => $row['kpi_type'],
                       'Percentage'         => $row['Percentage'],
                       'Count'          => $row['count'],
);}