0

私は12の異なる関数を使用して各月のデータベースの総利益を計算します[各月に1つ(はい、おそらく良い解決策ではありませんが、段階的に学習しています)]

これは.phpコードです(x12回)

$January="SELECT JanuaryProfit()";     //Function
echo "<b>January Profit: E</b>";
$January = mysql_query($giugno,$conn)
          or die("Query failed: " . mysql_error($conn));
$num_rows=mysql_num_rows($January);

if (! $num_rows)
      echo "<p>0</p>";
else {
      while ($row = mysql_fetch_row($January)) {
            $price=$row[0];
            echo "$price";
      };
}

関数JanuaryProfit()は次のように宣言されています[MySQL]:

BEGIN
DECLARE PriceTOT FLOAT;
SELECT SUM(o.PrezzoTot) INTO PriceTOT
FROM orders o
WHERE o.Data BETWEEN '2012-01-01' AND '2012-01-31';
RETURN PriceTOT;
END

そして、私は2月、3月、...、12月を単独で宣言しました。

最初のコードを.phpページに12回貼り付けません。毎回異なる関数を使用するforcicleを使用してみましたが、これを正しく解決する方法がわかりません。何か提案はありますか?

今までにやりたいのは、ループを使用してphp部分のみを変更することです。

4

1 に答える 1

1

ああ、私の愛する、甘い、空飛ぶスパゲッティモンスター。何をしているのかを止めて、それを燃やしてから、次のようなものを使用して、時間の始まりから終わりまで毎年の毎月の関数を書かないようにします。

SELECT 
  YEAR(o.Data) as 'year',
  MONTH(o.Data) as 'month',
  SUM(o.PrezzoTot) as 'total'
FROM orders o
GROUP BY YEAR(o.Data), MONTH(o.Data)

ある時点で、プログラムで月の最終日を把握するのに苦労したと思います。そのため、非常に便利なすべての日付関数LASTDAY()のドキュメントページにもリンクがあります。


編集

define('masochism', TRUE);

$ohgodwhy = array('January','February','March','April','May','June','July','August','September','October','November','December');

$aaahhh = 'SELECT %sProfit()';

foreach( $ohgodwhy as $pleaseno ) {
    $itburns = sprintf($aaahhh, $pleaseno);
    $hidethebodies = mysql_query($itburns) or die("Couldn't hide the bodies because: " . mysql_error());
    // etc...
}
于 2012-12-05T21:09:04.883 に答える