簡體   English   中英

PHP / MySQL特定列數

[英]PHP / MySQL Specific Column Count

我在論壇上四處搜尋,但是對於我來說,所有答案似乎都不起作用,我猜這是更多的用戶錯誤。

我正在嘗試做的是:

  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;

您可以使用單個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'];

更改

    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 ++;
    }

您所遇到的三個問題:

  1. 您缺少條件周圍的括號,
  2. 您要分配( = )而不是比較( == ),並且
  3. 您正在運行shell命令,而不是從數據庫行獲取值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM