これは一日中私を抱えていました私は時間を合計する時間と呼ばれる列を持っています(時計時間ではありません)私は別の日付から1つの日付を取得する方法(開始時間-終了時間)を持っていますが、時間でエントリを更新しようとすると以下は私のコードです。
private function calculatedifference($starttime,$endtime) // delete checkin time from checkouttime
{
$diff= abs(strtotime($starttime) - strtotime($endtime));
return date("H:i:s",$diff);
}
次に、ユーザーの電子メールと開始時刻に基づいて行を更新しようとします。しかし、それは動作しませんか?以下は、エントリを更新するモデル内のメソッドと、そのメソッドを呼び出すために使用するコード行です。
function update_daily_row($email,$date,$data)//update existing row.
{
$this->db->where('email', $email);
$this->db->where('starttime', time($date));
$this->db->update('dailyinfo', $data);
}
ここでメソッドを呼び出します。
$hours=$this->calculatedifference(date("Y-m-d H:i:s",
$this->session->userdata
('last_activity')),date("Y-m-d H:i:s"));
$data =array("hours"=>$hours,"endtime"=>date("Y-m-d H:i:s"));
$this->dbaccess->update_daily_row
($this->cdata['email'],
date("Y-m-d H:i:s",
$this->session->userdata('last_activity')),$data);
私は実際に物を見ることから盲目になったので、どんな助けもいただければ幸いです
更新:このコマンドを使用してクエリを確認しました
$this->db->last_query();
メールアドレスが見つからないクエリを返しましたか? これは、アクティブなレコードがおそらく電子メール アドレスの形式を好まないことを意味します。とにかくこの周りにありますか?
このメソッドを次のように使用した後、クエリが返されます
UPDATE `dailyinfo` SET `endtime` = '2013-10-02 21:14:02',
`hours` = '00:00:03' WHERE `email` = ''AND `starttime` = '2013-10-02 21:13:59'
そのため、メールは常に空白です。これを修正する方法がわからない???