PHPとMySQLを使った掲示板の作り方を初心者向けに解説【データベースを作る】

PHPで掲示板作成

PHPとMySQLを使って初心者が掲示板を作ってみる講座。

今回は掲示板の設計図を作り、これに合わせて、MySQLでデータベースを作成するところまで解説します。

「どんな掲示板ができるのかな。」と思ったら、下記の紹介動画をクリックしてくださいね。

↓↓↓

なお記事では掲示板に必要なコードはご紹介しますが、デザイン部分は省略しています。

デザイン部分も含めた形で、GitHubにコード公開しています。全体のコードを見たい時に、参考にしてください。

GitHubを見てみる

いいなと思ったら、GitHub右上のStarボタン、クリックしてもらえると、嬉しいです。

前回までの内容

掲示板作成の7ステップの目次と概要はこちらをご覧ください。

要件定義を行う

まず最初に行うべきは「設計図」作り。

実際のプログラミングでは、この設計図を作る作業を「要件定義」と呼びます。

次の項目を決めておきましょう。

  • 掲示板のテーマ
  • 必要なページと、ページに入れる機能
  • データベースの表に入れる項目

最初は紙に適当に書いてもOKです。

下記はものすごく適当な例ですが。参考程度にご覧ください。

設計図

設計図なしで適当に書くと、「こんな機能もほしいな」と変更が加わったりして、収拾がつかなくなったりします。

コードを書く前に設計図をシッカリ作っておくのがすごく大事!

特にデータベースは、最初からどんな項目をいれるか決めておいたほうが良いです。

最初に設計図を作っておくと、あとから項目を追加する時も、これによって、どの部分に変更が必要かを把握しやすくなります。

データベース作成

設計図を作った後は、設計図に沿って、データベースを作成しましょう。

今回はデータベースの中に、2つのテーブル(表)を作っていきます。

1つ目の表は【ユーザー情報を入れるテーブル】、2つ目は【投稿内容を入れるテーブル】とします。

phpMyAdminにログインする

XAMPPのMySQL「Admin」からログインします。

XAMPP画面

MySQLにデータベースを作る

ログイン後、「新規作成」をクリックします。

「データベースを作成する」画面になるので、データベース名を入れ、作成ボタンを押します。

右側は下記のとおり「utf8mb4_general_ci」にします。データベース名はforumとします。

ユーザー情報用のテーブル members を作る

データベースの中に、テーブルを作っていきます。

最初にユーザー用テーブルを作成しましょう。

データベース作成後に表示される画面で、テーブル名をmembersとします。【追加】には、追加するカラム数を指定します。今回は2を指定して、右下の【実行】ボタンを押します。

これで、全部で6個のカラムができます。

各カラムには、つぎの6種類の情報をいれます。

id 番号
name 名前
email メールアドレス
password パスワード
created 作成日時
modified 更新日時

次のように指定します。

【ユーザー情報用テーブル members】

  • 各カラムのタイプには、どういったデータを入れるか、【データ型】を指定します。
  • idカラムは、AIにチェックをいれます。するとインデックスはPRIMARYとなります。
  • createdとmodifiedは、CURRENT_TIMESTAMPを選択します。
  • modifiedは、ON UPDATE CURRENT_TIMESTAMP を選択します。

データ型と、idカラムに指定した「AI」について、補足説明します。

データ型とは

データベースを作る際は、各項目の「データの型」を指定せねばなりません。

よく使うデータ型は、次のとおり。

【データ型】

TINYINT 小さい整数。符号なしの範囲は0から255まで。ユーザー名やパスワードなど、255文字以内におさまるデータに使える。
INT 普通のサイズの整数。数字を入れるものに使える。
DATETIME 日付と時間の組み合わせ。データを登録した日時を記録できる。
TIMESTAMP タイムスタンプ。データベースにデータを更新する際、自動的に現在の日付と時刻を指定できる。
TEXT テキスト情報を入れる。投稿内容などに使える。

データに合わせて、型を選んでいきましょう。

AIについて

AIは人工知能を連想させますが、Auto-incrementの略で、直訳すると、自動増加といった意味です。

【id】の部分はAIにしておきます。するとPRIMARYキーに設定されます。つまり、idが主キーとなります。

AIにしたことで、データが追加されるごとに、自動的に番号がひとつずつ増える形で、付与されていきます。

 投稿情報用のテーブルを作る

それでは次に、ふたつめの投稿情報用のテーブルを作ります。

データベース作成後に表示される画面で、テーブル名をpostsとします。【追加】には、追加するカラム数を指定します。今回は1を指定して、全部で5個のカラムができるようにします。

右下の【実行】ボタンを押します。

各カラムには、つぎの5種類の情報をいれます。

id 番号
post 投稿内容
created_by 作成者
created 作成日時
modified 更新日時

次のように入力します。

【投稿情報用テーブル posts】

  • 各カラムのタイプには、どういったデータを入れるか、【データ型】を指定します。
  • idカラムは、AIにチェックをいれます。するとインデックスはPRIMARYとなります。
  • createdとmodifiedは、CURRENT_TIMESTAMPを選択します。
  • modifiedは、ON UPDATE CURRENT_TIMESTAMP を選択します。

さいごに

これでデータベースができました。

続きは、次の記事で解説していきます。

PHPで掲示板作成

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる


Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
セミナーで、StripeやChatGPT連携、デバックなど実践スキルを分かりやすく学べます。

ラボの案内を見てみる

【おすすめレンタルサーバー】

「Webアプリを本番環境に反映させたい」

場合には、レンタルサーバーを使うのが手軽です。

わたしはエックスサーバーをメインに使ってます。
早くて安定していて、おすすめです♪



Twitter始めました。
40代からプログラミング!

コメント

  1. より:

    dbはまずこれだけ作ればいいのですか?

  2. tm より:

    投稿用の情報の4つ目は何が入りますか?

  3. JJ より:

    記事を読ませて頂いて掲示板を作ってみようと興味が湧きまずは、書いて下さったGithubにあるコードを自分のVSコードで再現したいのですが、どこか直したりしないといけませんか?
    そのままでも見れますか?

タイトルとURLをコピーしました