我目前拥有的......
[{" 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);
?>
答案 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。了解prepared和PDO的MySQLi语句,并考虑使用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'],
);}