- ベストアンサー
DB(mysql)のデータをviewに反映する方法とは?
- DB(mysql)のデータをviewに反映する方法について教えてください。過去に投稿したデータを表示させる際に、DB側に登録して同じ日付のデータを全件表示させたいです。現在は最新のデータのみ表示されてしまいます。
- 現在、DB(mysql)にデータを登録していますが、同じ日付のデータを全件表示させる方法がわかりません。どのようにすれば解決できるでしょうか?
- DB(mysql)に登録されているデータをviewに反映させたいのですが、現在は最新のデータのみ表示されてしまいます。同じ日付のデータを全件表示させる方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょうか。 //日付ごとの配列を生成し、同じ日付のデータを集める $e_all_by_day = []; foreach ($e_all as $e_time) { $e_all_by_day[$e_time->date_time][] = $e_time; } for ($i = 0; $i < $countdate; ++$i) { $d = mktime(0, 0, 0, 10, 16 + $i, 2021); //日付ごとの配列のキー $dd = date('Y-m-d', $d); //その日付のデータの有無判定 if (array_key_exists($dd, $e_all_by_day)) { //その日付のデータ数 $count = count($e_all_by_day[$dd]); //日付と曜日は1回だけ出力するのでセルを結合する準備 $rowspan = ' rowspan="'.count($e_all_by_day[$dd]).'"'; } else { //データがなくても日付と曜日は出力するための「1」 $count = 1; $rowspan = ''; } //その日付のデータ数ループ(データがなくても1回) for ($j = 0; $j < $count; ++$j) { echo '<tr>'; if (0 == $j) { //日付と曜日を1回だけ出力 echo '<td class="px-4 py-3"'.$rowspan.'">'.date('d', $d).'</td>'; echo '<td class="px-4 py-3"'.$rowspan.'">'.$youbi[date('w', $d)].'</td>'; } if ('' != $rowspan) { //その日付にデータがある $e_time = $e_all_by_day[$dd][$j]; if (!empty($e_time->start_time)) { echo '<td class="px-4 py-3">'.$e_time->kubun.'</td>'; echo '<td class="px-4 py-3">'.$e_time->start_time.'</td>'; } else { echo '<td></td>'; } } else { //その日付のデータがない echo '<td></td>'; } echo '</tr>'; } } ?> </table>
補足
こういう書き方があったのかと大変参考になりました。 まだソースを試してみませんが土日に試してみて疑問があえば質問上げさせていただきます。よろしくお願い致します。 $rowspan = ' rowspan="'.count($e_all_by_day[$dd]).'"'; } else { //データがなくても日付と曜日は出力するための「1」 $count = 1; $rowspan = ''; } //その日付のデータ数ループ(データがなくても1回) for ($j = 0; $j < $count; ++$j) {