0

この作業クエリで次の結果を得ることができます。

$query = "SELECT tt.time_start, tt.time_end
FROM track_time as tt, project_track as pt, project_clients as pc, clients as cl
WHERE tt.track_id = pt.track_id
AND pt.project_id = pc.project_id
AND pc.client_id = cl.client_id
AND cl.client_id =".$db->prep($client_id);
$res = $db->query($query,'assoc');

**RESULTS**
time_start  time_end    client_id
1340927940  1340928420  1
1341066240  1341077040  1
1341086400  1341088560  1
1340954400  1340986800  7

私がクライアントごとに達成しようとしているのは、1 つの結果に対してすべてのtime_start値を合計し、1 つの結果に対してすべてのtime_end値を合計してから、これら 2 つの結果の差を取得することです。これにより、各クライアントの合計を決定できます。

私はPHPで作業しており、すべての方法で foreach を試していますが、運が悪く、配列が正しくありません。何か案は?

4

2 に答える 2

1

これを試して:

$query = "SELECT pc.client_id, 
                 (SUM(tt.time_start) - SUM(tt.time_end)) as `Difference`
          FROM  track_time as tt, project_track as pt, 
                project_clients as pc, clients as cl
          WHERE tt.track_id = pt.track_id
                    AND pt.project_id = pc.project_id
                    AND pc.client_id = cl.client_id
                    AND cl.client_id =" . $db->prep($client_id) . " 
          GROUP BY client_id";
于 2012-07-01T00:21:54.387 に答える
0

time_starttime_endタイムスタンプ値のようです。そう ;

$total = 0;
foreach( $array as $item)
{
     $total += strtotime( $item['time_start']);
}

その後、date()意図した形式で関数を実行すると、正しく動作するはずです。

于 2012-06-30T23:14:45.227 に答える