2016-04-13 17 views
2

「期間」列に異なる値を持つレコードの数をカウントするために、以下のクエリを使用しています。MySQL PHP - 個別値出力の変数

TTL:期間欄は、各別個の値は、「朝食」、「昼食」または「夕食」、および毎月の列によってグループ化された式の出力した後、一つの行のいずれかを含みます。フィードバック:朝食:XXX

Ttl。フィードバック:ランチ:XXX

Ttl。フィードバック:夕食:XXX

ここで、朝食、昼食、夕食に返される$ mydata ['total']を参照してください。現在の変数はそれぞれの合計を返します個別の値は、と私は、特に個々の期間のスコアを解決しましょうdoesntの。

<? 
    $whereParts = array(); 
    if ($property) { 
     $whereParts[] = "Holidex = '$property' "; 
    } 

    $whereParts = array(); 
    if ($outlet) { 
     $whereParts[] = "Outlet = '$outlet' "; 
    } 

    if ($pickyear) { 
     $whereParts[] = "YEAR(Date) = '$pickyear' "; 
    } 

    $sql = ("select distinct period from FB_Feedback_Card_Data"); 

    //BUILD THE FINAL QUERY 
    if (count($whereParts) > 0) { 
     $sql .= " WHERE " . implode('AND ', $whereParts); 
    } 
    //count($whereParts) > 0 

    $result = $mysqli->query($sql) or die('<p>Query to get case Period data from FB_Feedback_Card_Data table failed:' . mysql_error() . '</p>'); 

    while ($row = mysqli_fetch_row($result)) 
    { 
     $period = $row[0]; 
     //echo "$status <br>"; 
     $mydata = stats("period", "$period", "$property", "$outlet", "$pickyear",$mysqli); 

    ?> 

<tr> 
    <td class="result_desc"><?echo "Ttl. Feedback : $period";?></td> 
    <td class="result"><? echo $mydata['a']; ?></td> 
    <td class="result"><? echo $mydata['b']; ?></td> 
    <td class="result"><? echo $mydata['c']; ?></td> 
    <td class="result"><? echo $mydata['d']; ?></td> 
    <td class="result"><? echo $mydata['e']; ?></td> 
    <td class="result"><? echo $mydata['f']; ?></td> 
    <td class="result"><? echo $mydata['g']; ?></td> 
    <td class="result"><? echo $mydata['h']; ?></td> 
    <td class="result"><? echo $mydata['i']; ?></td> 
    <td class="result"><? echo $mydata['j']; ?></td> 
    <td class="result"><? echo $mydata['k']; ?></td> 
    <td class="result"><? echo $mydata['l']; ?></td> 
    <td class="result_ytd"><strong><? echo $mydata['total']; ?></strong></td> 
</tr> 

<? 
// end total status stats 
} 
?> 

答えて

0

あなたは$ mydataという変数から合計を取得これによりPHP関数array_sumを使用することができます。

<td class="result_ytd"><strong><?= array_sum($mydata); ?></strong></td> 

唯一のもの他の価値はないはずですアレイの中では、私はこれがここに当てはまると思います。

0

あなたはそのためDISTINCTを使用する必要はありません、あなたが同じレコードで同じ値を持つすべてのエントリを置くであろう、GROUP BYを必要として、あなただけのそれらのそれぞれをカウントする必要があります。

SELECT period, count(period) as period_count FROM FB_Feedback_Card_Data WHERE ... GROUP BY period

+0

しかし、それぞれの別個の期間の出力を変数にどのようにして取得できますか? $ row [0]、$ row [1]などでこれを行うのですか? – Armitage2k

+0

@ Armitage2kクエリを編集して、配列から値を取得しやすくしました。あなたは '$ periodName = $ row ['period'];を実行します。 $ count = $ row ['period_count']; ' – Nadir