2015-09-23 6 views
0

Проценты Что я в настоящее время ..MYSQL/Вывод в формате JSON Count &

[{ "Статус": "C - Net & Телефон", "ХПИ": "Веди", "граф": "12" }

то, что я пытаюсь сделать, это его потушить [{ "статус": "значение", "ХПИ": "значение", "считать": "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

Если вы можете, вы должны [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) , [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте об использовании PDO, [это действительно не сложно] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

Процент столбца в таблице? Или вы пытаетесь рассчитать процент? У вас также есть как минимум одна опечатка с '$' –

+0

. Я пытаюсь рассчитать процент. Подобно тому, что я сделал с COUNT (*). – Levi

ответ

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'], 
);} 
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. These extensions были удалены в PHP 7. Ознакомьтесь с инструкциями prepared для PDO и MySQLi и рассмотрите использование PDO, it's really not hard.

+0

У меня нет процентной доли столбца. Просто попробуйте создать столбец, как я сделал для подсчета, но покажите процент, основанный на kpi_type. – Levi

+0

Что вы подразумеваете под снабжением $ x и $ y ?? – Levi

+0

Не могу заставить его работать * shrug * – Levi