CakePHPで何かを作ろうとする 9日目 , 10日目(やっと完成)
一昨日の続き。昨日はブログを書く時間が無かったので2日分まとめて書く。
9日目(昨日)
計算式ごとの回答タイム平均値をテーブルから取得する処理をコーディング。
「ユーザーIDがログインユーザーのIDで、パターンが足し算(add)のレコードの、計算式と回答タイム平均値をタイムが大きい順に最大100件取得」
という処理をモデルのfind()メソッドで書いたら以下のようになった。
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の理解は怪しい。
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番目のレコードの値は$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
));
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の理解は怪しい。
スポンサーサイト