私はmysqlデータベースのCRUD操作、具体的にはPDOに関するチュートリアルに従っています(これは関係ないと思います)。ループを理解するmysql CRUD
時間トラッカーです。プロジェクトテーブルとタスクテーブルによって形成される。すべてのタスクはプロジェクトに属します。プロジェクトは複数のタスクを持つことができますが、タスクは1つのプロジェクトにしか属しません。私は、プロジェクトを含む「レポート」ページを表示する必要があります。そして、各プロジェクトに費やされた時間とともにそのプロジェクトのタスクのリスト、そして各プロジェクトの最後に、そのプロジェクトに費やされた合計時間を表示する必要があります。
これはレポートを表示するテーブルです。最後のプロジェクトには合計がありませんが、それはチュートリアルでさらに議論される問題です。
<?php
$filter = 'all';
?>
<table>
<?php
$total = $project_id = $project_total = 0;
foreach (get_tasks_list($filter) as $item) {
if ($project_id != $item['project_id']) {
if ($project_id > 0) {
echo '<tr>';
echo '<th colspan="2">Project Total</th>';
echo '<th>' . $project_total . '</th>';
echo '</tr>';
$project_total = 0;
}
$project_id = $item['project_id'];
echo '<thead>';
echo '<tr>';
echo '<td>' . $item['project'] . '</td>';
echo '<td> Date </td>';
echo '<td> Time </td>';
echo '</tr></thead>';
}
$project_total += $item['time'];
$total += $item['time'];
echo '<tr>';
echo '<td>' . $item['title'] . '</td>';
echo '<td>' . $item['date'] . '</td>';
echo '<td>' . $item['time'] . '</td>';
echo '</tr>';
}
?>
<tr class="totalReportTime">
<th colspan="2">Total</th>
<th><?php echo $total; ?></th>
</tr>
</table>
get_tasks_listはすべてのタスクのリストを示します。
私の疑問は.....私は何をしにやっている: $ PROJECT_ID = $アイテム[ 'PROJECT_ID']; ??
私はforeachループの後にforeachタスクをチェックします。$ project_idが0に設定されているかどうかは、タスクに関連するproject_idと等しくないかどうかを確認します。 $ project_idは0より大きいですか?なぜそれの後に$ project_idの値をtask_idの同じ値としてタスクから設定しているのでしょうか?
基本的に、最後に各プロジェクトの合計を追加する必要があるかどうか、またはその割り当てを行う理由を把握していません。$ project_id = $ item ['project_id'];
基本的な説明が役立ちます。
ありがとうございます!
'$ project_id'は' $ last_project_id'という名前の方が良いと思われます。 2つの重複した '$ item'を連続して出力しないようにしているようです。どのような、btw、最初の場所で汚れたデータのようなにおい... – moopet
申し訳ありません...私はそれをキャッチしない:(だから$ project_idは、プロジェクトの最後のタスクのIDですか? データはゴミですが、チュートリアルではさまざまな種類のデータとその検証について教えています。 これはとてもイライラしています!!!!! 回答ありがとうございました:) –