1

フォーラムを検索しましたが、すべての回答が機能していないようです。ユーザーエラーが多いと思います。

私がやろうとしていること:

  1. MySQL からデータ セットを取得する

  2. 行の総数を数えます

  3. metSLA列の値が「Y」であるものがいくつあるかを具体的に計算します

  4. metSLA列の値が「N」であるものがいくつあるかを具体的に計算します

  5. これらの metSLA 値のそれぞれをパーセンテージに変換します

**MySQL クエリは確実に機能し、参照用に変数 $result に保存されます。

*

        //sla and total case count and percentages
        $sla_met_rows = 0;
        $sla_not_met_rows = 0;

        $total_cases = mysql_num_rows($result);

        while ($row = mysql_fetch_array($result)) 
        {
        if `metSLA` = "Y"
            {
            $sla_met_rows ++;
            } else if `metSLA` = "N"
                {
                $sla_not_met_num_rows ++;
                }
        }
        $met_percentage = 100 / $total_cases * $sla_met_rows;
        $not_met_percentage = 100 / $total_cases * $sla_not_met_num_rows;
4

2 に答える 2

5

単一の MySQL クエリを使用して、パーセンテージの結果を取得できます。

SELECT COUNT( CASE WHEN `metSLA` = "Y" THEN 1 ELSE NULL END ) AS `Yes`,
    COUNT( CASE WHEN `metSLA` = "N" THEN 1 ELSE NULL END ) AS `No`,
    COUNT(1) AS `total`
FROM `TableName`

PHP では、次のように参照されます。

$result = mysql_query( <<The query above is here>> );
$row = mysql_fetch_array( $result );
$met_precentage = $row['Yes'] * 100 / $row['total'];
$not_met_precentage = $row['No'] * 100 / $row['total'];
于 2013-03-29T17:56:52.493 に答える
1

変化する

    if `metSLA` = "Y"
        {
        $sla_met_rows ++;
        } else if `metSLA` = "N"
            {
            $sla_not_met_num_rows ++;
            }

に:

    if ($row['metSLA'] == "Y")
    {
      $sla_met_rows ++;
    }

    else if ($row['metSLA'] == "N")
    {
      $sla_not_met_num_rows ++;
    }

あなたが持っているものには3つの問題があります:

  1. 条件を囲む括弧がありません。
  2. =( ) を比較するのではなく( ) を代入してい==て、
  3. データベース行から値を取得するのではなく、シェル コマンドを実行しています。
于 2013-03-29T17:56:23.037 に答える