質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

カレンダーの前月を表示させたいが、データベースの一覧が表示される。

minma
minma

総合スコア2

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

2回答

0評価

0クリップ

341閲覧

投稿2021/02/15 08:52

前提・実現したいこと

カレンダーを作っています。
しかし、前月や次の月のボタン(カレンダーの上の方の矢印)を押したら、前月分のカレンダーを表示させたいのですが、データベースの一覧が出てきます。

発生している問題・エラーメッセージ

出てきません。

該当のソースコード

<?php function h($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); } try { if (!isset($_GET['t']) || !preg_match('/\A\d{4}-\d{2}\z/', $_GET['t'])) { throw new Exception(); } $thisMonth = new DateTime($_GET['t']); } catch (Exception $e) { $thisMonth = new DateTime('first day of this month'); } $dt = clone $thisMonth; $prev = $dt->modify('-1 month')->format('Y-m'); $dt = clone $thisMonth; $next = $dt->modify('+1 month')->format('Y-m'); $yearMonth = $thisMonth->format('F Y'); $tail = ''; $lastDayOfPrevMonth = new DateTime('last day of' . $yearMonth . ' -1 month'); while ($lastDayOfPrevMonth->format('w') < 6) { $tail = sprintf('<td class="gray">%d</td>', $lastDayOfPrevMonth->format('d')) . $tail; $lastDayOfPrevMonth->sub(new DateInterval('P1D')); } $body = ''; $period = new DatePeriod( new DateTime('first day of' . $yearMonth), new DateInterval('P1D'), new DateTime('first day of' . $yearMonth . ' +1 month') ); $today = new DateTime('today'); foreach ($period as $day) { if ($day->format('w') % 7 === 0) { $body .= '</tr><tr>'; } $todayClass = ($day->format('Y-m-d') === $today->format('Y-m-d')) ? 'today' : ''; $body .= sprintf('<td class="youbi_%d %s">%d</td>', $day->format('w'), $todayClass, $day->format('d')); } $head = ''; $firstDayOfNextMonth = new DateTime('first day of' . $yearMonth . ' +1 month'); while ($firstDayOfNextMonth->format('w') > 0) { $head .= sprintf('<td class="gray">%d</td>', $firstDayOfNextMonth->format('d')); $firstDayOfNextMonth->add(new DateInterval('P1D')); } $html = '<tr>' . $tail . $body . $head . '</tr>'; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/style.css"> <title>Calender</title> </head> <body> <table> <thead> <tr> <th><a href="/?t=<?php echo h($prev); ?>">&laquo;</a></th> <th colspan="5"><?php echo h($yearMonth); ?></th> <th><a href="/?t=<?php echo h($next); ?>">&raquo;</a></th> </tr> </thead> <tbody> <tr> <td>Sun</td> <td>Mon</td> <td>Tue</td> <td>Wed</td> <td>Thu</td> <td>Fri</td> <td>Sat</td> </tr> <?php echo $html; ?> </tbody> <tfoot> <tr> <th colspan="7"><a href="/">Today</a></th> </tr> </tfoot> </table> </body> </html>

また、できれば、こういった場合の対処を調べる検索のしかたも知りたいです。
よろしくお願いします。

イメージ説明

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

退会済みユーザー

退会済みユーザー

2021/02/15 08:56

先月や次月の表示を意図してクリックする箇所で右クリックして「リンク先URL」を取得したときにどうなっていますか?
m.ts10806

2021/02/15 09:44

データベースの一覧じゃなくてディレクトリの一覧。 実行したいPHPはどこに置いてますかね
minma

2021/02/16 01:50

MAMP/htdocs/calender/index.phpのindex.phpを実行したいです。
m.ts10806

2021/02/16 01:51

回答してます。
minma

2021/02/16 01:53

すみません、今見ました。やってみます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。