0

次のクエリがあるとします。これにより、ダウンロードおよび引き換えられたクーポンの量が日付別にグループ化されて表示されます: [EDIT](I can't modified this query)[/EDIT]

$sql = "SELECT DATE(datetime) ,
                           SUM(CASE WHEN datetime!=''  THEN 1 ELSE 0 END) As downloaded ,
                           SUM(CASE WHEN used = 1 AND DATE(datetime) != '' THEN 1 ELSE 0 END) AS redeemed

                     FROM Promotion_Redeem
                     WHERE datetime BETWEEN '2013-10-01' AND '2013-10-04'
                     GROUP BY DATE(datetime)";

ダウンロードの合計と引き換えの合計を取得するにはどうすればよいですか? これは $sql 内のどこかにある必要があります... 以下は、このクエリの結果です。

row number 1
array (size=3)
0 => string '2013-10-01' (length=10)
1 => string '126' (length=3)
2 => string '11' (length=2)
row number 2
array (size=3)
0 => string '2013-10-02' (length=10)
1 => string '106' (length=3)
2 => string '5' (length=1)
row number 3
array (size=3)
0 => string '2013-10-03' (length=10)
1 => string '228' (length=3)
2 => string '12' (length=2)
row number 4
array (size=3)
0 => string '2013-10-04' (length=10)
1 => string '149' (length=3)
2 => string '9' (length=1)

[編集] 上記のように、4 つの行があり、それぞれに配列があります...たとえば、これらの配列のそれぞれから 3 番目のフィールドの合計が必要です...私の例では、これは 37 (つまり、37 クーポンが引き換えられました)[/編集] これを使用した後、このデータ構造を取得しました。

while ($row = mysql_fetch_row($result)) {
            echo "row number ".++$i;
            var_dump($row);

        }

前もって感謝します

4

1 に答える 1

1

PHP ループを次のように変更します。

$downloaded=0;
$redeemed=0;
while ($row = mysql_fetch_row($result)) {
        echo "row number ".++$i;
        $downloaded+=$row[1];
        $redeemed+=$row[2];
        var_dump($row);
    }
echo "Downloaded: $downloaded<br>";    
echo "Redeemed: $redeemed<br>";
于 2013-10-08T19:00:38.280 に答える