2016-04-19 21 views
0

Im現在の年に基づいて特定の列の平均値を設定するWebページ上で作業しています。私はそれがElecUsage列内のすべての値から平均値を選択する必要があります理解したようPHP年の日付を基準にした列の平均値

public function getElecReadings(){ 
     try { 
      $stmt = $this->dbconn->prepare("SELECT AVG(ElecUsage), DateAdded FROM elec_readings WHERE AccountNumber = '" . $_SESSION['user_session'] . "'"); 
      $stmt->execute(); 
      return $stmt; 
     } catch (Exception $e) { 

     } 
    } 

: アイブ氏は、次のコードを得ました。しかし、私は現在の年に基づいて列からすべての平均値をどのように選択できるのだろうと思っていました。私は今年の線を沿って何かをすることができます:<?php echo date("Y"); ?> 2016をエコーアウトします。

My DateAddedカラムは日付タイプとして保存されます。だから今日は2016年4月19日でしょう。列から2016を抽出してselectステートメントに適用し、平均値をHTMLページのテキストボックスに表示する方法はありますか?

私はあなたが欲しいものだと思います年は2016 andsomethingあるすべての口座番号を抽出します:

おかげ

答えて

1

あなたは基本的に質問を自分で答えましたか?

+0

平均的な値を変数に格納して呼び出す方法がありますか? –

1

についてはお問い合わせください。あなたは年(日付)=「CURRENT_YEAR」

はので、あなたのコードは、このようなことができ、テーブルから平均を選択する必要があります。

public function getElecReadings(){ 
     try { 
      $current_year = date('Y'); 
      $stmt = $this->dbconn->prepare("SELECT AVG(ElecUsage), 
      DateAdded FROM elec_readings WHERE year(DateAdded) = '$current_year' and AccountNumber = '" .$_SESSION['user_session'] . "'"); 
      $stmt->execute(); 
      return $stmt; 
     } catch (Exception $e) { 

     } 
    } 

また、あなたがすべてのために、すべての平均値を抽出するために別のクエリを使用することができます年:

SELECT AVG(ElecUsage), year(DateAdded) FROM elec_readings GROUP BY YEAR(DateAdded) 
+0

申し訳ありません私はyear(DateAdded)= '$ current_year'を入れて忘れました –

+0

平均値を変数に保存して呼び出す方法はありますか? –

+0

変数に変数を格納することで、あなたが何をしているのか分かりませんでした。 としてAVG(ElecUsage)を選択してエイリアスを割り当てることができます。 $ stmt行をフェッチすると、その名前で呼び出すことができます echo $ row ['average' ]; –

0

またCURDATE()を使用してMySQLを現在の年を取得することができます。

public function getElecReadings(){ 
    try { 
     $stmt = $this->dbconn->prepare("SELECT AVG(ElecUsage), DateAdded FROM elec_readings WHERE AccountNumber = '" . $_SESSION['user_session'] . "' AND CurrentYear LIKE '%2016'"); 
     $stmt->execute(); 
     return $stmt; 
    } catch (Exception $e) { 

    } 
} 

それは私の仕事: はちょうど私がこのような何かをするだろうあなたのselect文

AND YEAR(DateAdded) = YEAR(CURDATE()) 
1

にこの条件を追加します。あなたが前に言ったように、PHPを使って年をとり、代わりにその変数を出力してください。

+0

これは、平均値をどのように保存し、HTMLページで呼び出すのかについてはあまりにも不確かです。 –

+0

申し訳ありませんが、質問はその年だけの結果をフィルタリングすることだと思いました。結果をHTMLテンプレートに表示するには、その関数を呼び出してその結果をPHP変数に格納します。次に、結果をループしてエコーしなければなりません。助けが必要な場合は、私の回答を更新する必要があるかどうかをお知らせください。 –

+0

あなたの権利はありません。私はちょうどその年までに結果をフィルタリングしてから使用量の列を平均したいのですが、テキストボックスに平均値を表示する必要があります。あなたがあなたの答えを更新することができたら、それを感謝してください! –

関連する問題