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

プログラミング・PHP学習

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

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

最終的にできる掲示板のイメージはこちら(クリックすると実物を操作いただけます)。

↓↓↓

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

要件定義を行う

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

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

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

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

私は紙に適当に書きましたが^^;

掲示板の設計図(手書き)

超適当でも、この設計図が大いに役立ちました。

後から

じゅんこ
じゅんこ

やっぱりこの項目も入れたいなぁ。

と、ぽろぽろ変更を加えると、ドツボにはまっていき、バグだらけのシステムになることもあります。

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

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

MySQLにデータベース作成

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

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

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

phpMyAdminにログインする

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

XAMPP画面

MySQLにデータベースを作る

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

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

右側は下記のとおり「utf8mb4_general_ci」にします。

データベースの中にテーブルを作る

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

データベース作成後に表示される画面で、テーブル名とカラム数を指定します。

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

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

最初にユーザー情報用のテーブル【members】を作ります。

下記の6種類の情報をいれたいので、カラム数は6としておきます。

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

MySQLに次のように入力します。

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

mysql会員情報用テーブル

ここでポイントは【データ型】と、基本となる【id】の設定です。

データ型とは

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

今回使っているデータ型は、次のとおり。

【今回使ったデータ型】

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

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

基本となるidの設定

データベースでは、主となるカラム(列)を設定します。

通常は【id】という名前にして、データが追加されるごとに、自動的に番号が付くといった形にしておきます。

今回もそのような形にします。

テーブルを作成する際、次のように、【id】のインデックスをprimaryにし、AIにチェックをいれます。

primaryを設定する際にボックスがでてきますが、そのまま【実行】ボタンを押します。

じゅんこ
じゅんこ

ちなみにAIはAuto-incrementの略で、自動的に番号が付くよ、という意味。

人工知能のAIではありません。

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

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

下記の6種類の情報をいれたいので、カラム数は6としておきます。

message_id メッセージ番号
message メッセージ
created_by 作成者
Created 作成日時
modified 更新日時

MySQLに次のように入力します。

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

mysql投稿情報用テーブル

【message_id】のインデックスをprimaryにし、AIにチェックをいれます。

さいごに

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

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

【補足】
なお今回、前半の「要件定義」に書いてある内容と、データベースの内容が違っています。鋭い方は、お気づきになられたかもしれません。今回コードを解説する簡易版ではカラムを少なめに設定しているため、データベースからものぞきました。
プログラミング・PHP学習

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪



【法人向けオンラインセミナー実施中】
1日セミナーと、専用サイトを使った1ヵ月セミナーをご用意しています。
社内にLaravelエンジニアを増やしたい時にご活用ください。

詳細はこちら

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

コメント

  1. より:

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

  2. tm より:

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

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