したがって、次のようなMySQLテーブルがあります。
id timestamp action timePassed
1 2012-07-10 22:44:00 start 0
2 2012-07-10 22:44:50 pause 50
3 2012-07-10 22:45:30 play 50
4 2012-07-10 22:47:25 pause 205
5 2012-07-10 22:48:05 play 205
それがどれほど明白かはわかりませんが、ここで起こっていることは基本的にすべての「一時停止」行で、現在のタイムスタンプと「開始」行のタイムスタンプの差を秒単位で計算しています。
これを行う唯一の方法は、データベースに新しい「一時停止」行を挿入して、タイムスタンプが生成されるようにすることです...次に、その「一時停止」行のタイムスタンプをデータベースに照会します...差を秒単位で計算しますPHPを使用して、その「一時停止」行と「開始」行の間...次に、timePassedの結果で「一時停止」行を更新します。
私の質問は、これを行うためのより良い方法があるかどうかです (つまり、timediff または他の MySQL コマンドを使用します)。問題は、INSERT を実行するまで「一時停止」タイムスタンプが存在しないことです。そのため、計算を行う前に最初にそれを行う必要があると思いますか?