たかのしゅーのエンジニアへの道

ガチ初心者がウェブカツ受講すると、どうなるか。。。ってブログです。

7月18日の学習記録 朝活成功&初コード公開

今朝からいきなり思いついて、頑張ってみた。初の朝活成功。

でね、色々やったんですよ。昨日も書きましたが、GROUP BYとか使ってさ。

でも、もっと簡単にできたんです。なぜこれに気が付かなかったのか。

さらに、実は上のツイートではあるエラーが発生していました。

前提として、まだ1つも学習記録を登録していない状態。

この状態の時に、漢字ドリルではなく、計算ドリルだけを入力した時に、漢字ドリルのところに時間が表示されてしまうというエラーでした。

希望としては

漢字ドリル 00時間00分

計算ドリル 00時間40分

みたいになって欲しいんです。

ただ、この後漢字ドリルを入力すると、ちゃんと思い通りの表示になるのよ。

これを解消するために色々考えてたんだけど、すげー難しく考えすぎてました。

ついでに、学習記録ページには、当日の学習時間だけ表示するように変更しました。

function studyCaseToday($u_id, $case){
debug('今日のドリル毎の学習時間を取得します。');
try {
$dbh = dbConnect();
$sql = 'SELECT sum(s_time) FROM studyrecord WHERE user_id = :u_id AND
study_date = CURDATE() AND s_case = :s_case';
$data = array(':u_id' => $u_id, ':s_case' => $case);
$stmt = queryPost($dbh,$sql,$data);
if ($stmt) {
return $stmt->fetch(PDO::FETCH_ASSOC);
}else{
return false;
}
} catch (Exception $e) {
error_log('エラー発生'.$e->getMessage());
}
}

DBに、何の学習をしたかまで保存してるんだから、それ使えと。。。

って事でこれにて無事に当日のみの学習時間を表示する事に成功。

study_date = CURDATE()

今回はこれをググって使いました。当日を指定するにはCURDATE()を使うんです。

このコードを基本に、

・当日の学習時間の合計

・今までの学習時間の合計

・今までのドリル毎の学習時間の合計

これらを表示させることに成功しました。

もちろん、アカウント毎に表示されますよ!!!

 

それから、fetchについても色々調べてみた。完全には理解してないけども。

これはまた後々。

 

長かったけど、考えてる時間は楽しかった。

 

さて、明日からはいよいよカレンダー。ここが難所っぽい。

みなさんはカレンダー機能、どうしてるんだろう。。。