FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CakePHPで何かを作ろうとする 9日目 , 10日目(やっと完成)

一昨日の続き。昨日はブログを書く時間が無かったので2日分まとめて書く。

9日目(昨日)
計算式ごとの回答タイム平均値をテーブルから取得する処理をコーディング。
「ユーザーIDがログインユーザーのIDで、パターンが足し算(add)のレコードの、計算式と回答タイム平均値をタイムが大きい順に最大100件取得」
という処理をモデルのfind()メソッドで書いたら以下のようになった。
// ans_dataテーブルからデータ取得
$getdata = $this->AnsDatum->find("all",array(
      "conditions" => array("AnsDatum.userid" => $userId, "AnsDatum.pattern" => "add"),
      "fields" => array("AnsDatum.expression","round(avg(AnsDatum.time),3) as avgtime"),
      "group" => array("AnsDatum.expression"),
      "order" => array("avg(AnsDatum.time) DESC"),
      "limit" => 100
    ));
このとき、n番目のレコードの値は
AnsDatum.expression は $getdata[(n-1)]["AnsDatum"]["expression"] に、
round(avg(AnsDatum.time),3) は $getdata[(n-1)][0]["avgtime"] に格納される。
group by して関数を使った場合の格納形式についてはCakePHPマニュアルに書かれている。(日本語版マニュアルには、現在この記述は無い)

10日目(今日)
計算式ごとの回答タイム平均値を表示する画面をコーディング。
久しぶりにCSS解説ページを見たが、凝ったことはやらずに「display: table; などを使ってテーブル表示して、レコードが増えたら float: left; でテーブル追加」で妥協した。

これで一応完成したので、コントローラー、モデル、ビューとJavaScript(修正箇所のみ)の全分岐を通すテストを行った。小さなバグが3つぐらいあった。

10日間CakePHPプログラミングを行って、CakePHPは結構理解できたと思う。
CakePHPの機能で十分で、PHPの関数はあまり使わなかったので、PHPの理解は怪しい。
スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

himax64

Author: 南西
30代後半の無職です。
就活もせずダラダラ生きてます。
作ったもの

最新記事
人気記事
検索フォーム
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QRコード
カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。