データベースを使った商品レビュー管理システムを作ろう(3)~データベースを作る~
データベースを使ったレビュー管理の3回目。
いよいよ、コードの解説になりますが、その前にデータベースを作ります。
サーバー内にデータベースを作る
データベースを作るには、PHPコードで作る方法と、サーバーの管理画面から作る方法の2つがあります。
PHPコードで作ってのいいのですが、データベースは1つしか作らず、何度も作る必要がないので、今回はサーバーの管理画面から作る方法で行きます。
サーバー管理画面からデータベースを作る
サーバーの管理画面からデータベースを作る方法は、各サーバーによって若干違いますが、どのサーバーも「MySQL設定」から「MySQL追加」で作っていきます。
この時、MySQL(データベース)と同時に、MySQLユーザーも作ることになると思います。
MySQLユーザーとは、データベースにアクセスできるアカウントのこと。
MySQLユーザーとMySQL(データーベース)は紐づけされます。
ここで紐づけされたユーザー以外はデーターベースを操作することはできません。
WordPressを導入してる人は、すでにいくつかのMySQLユーザーが設定されているはずです。
このすでにできているMySQLユーザーと今回作ったデータベースを紐付けすることもできます。この場合、新たにユーザーを作る必要はありませんが、1つのデータベースに各々1つのユーザーを作るのが一般的です。
データベース名などを記録する
データベースとユーザーを作る場合、以下の項目を設定します。
この項目は、データベースを操作するのに使いますので、notopadなどに保存しておいてください。
データベースホスト名
データベース名
ユーザー名
ユーザーパスワード
データベースホスト名は各サーバーごとに決まっています。
サーバーのマニュアルなどに書いてあります。
その他の項目は、データベースを作るときやユーザーアカウントを作るときに決めていきます。
Lolipopサーバーはちょっと特殊
X-ServerやConoHa-Wingでは、安いプラン契約をしていても、いくつでもデータベースを作ることができます。
ブログのWordPress用データベースとは別にデータベースを作りましょう。
Lolipopの一番安いプランの場合は、データベースとユーザーアカウントは一つしか作れません。
ブログ用のWordPressを導入している場合は、すでにデータベースとユーザーアカウントができてしまっているので、これを使うしかありません。
1つのデーターベースでもWordPressと今回のレビュー管理の両方のデーターを扱うことはできます。
このばあい、この後作るテーブルの名前がダブらないように注意しなくてはいけません。
ただ、WordPress用のテーブル名は頭に「wp1-」といった文字が付くので、ダブる心配はないと思います。
データベース内にテーブルを作る
データベースができたらその中にテーブルを作っていきます。
ターブルはPHPコードで作る方法と、サーバー管理画面から作る方法があります。
このテーブルも1回しか作らないので、サーバー画面から作っちゃいましょう。
テーブルとは?
テーブルとは簡単に言うと、エクセルのシートのようなものです。
エクセルの列にあたるものをカラムといい、行にあたるものをレコードといいます。
レコードのことをロウ(行)なんていうこともあります。
また、エクセルのセルにあたる、データが入る部分のことをフィールドといいます。
シート=テーブル
列=カラム
行=レコードもしくはロウ
セル=フィールド
つまり、データベースとは、エクセルのシート(テーブル)が何枚も集まったエクセルブックのようなものと考えたらわかりやすいと思います。
テーブルの作り方
テーブルを作るには、phpmyadminというシステムを使います。
各サーバーの管理画面のメニュー内にphpmyadmin(もしくはMyAdmin)があると思いますので、それをクリックしてphpmyadminを起動します。
もし、メニュー内にphpmyadminがなかったら、サーバーのマニュアルを確認してください。
phpmyadminの使い方は、どのサーバーでもほとんど同じはずです。
詳しい使い方はサーバーのマニュアルを読んでください。
phpmysqlを起動すると、ユーザー名、ユーザーパスワードを聞かれます。
先ほど記録したユーザー名、ユーザーパスワードをコピペしましょう。
X-serverの場合は、ユーザー名とパスワードを入れたらそれに紐づけされたデータベースが開くようになっています。
サーバーによってはデータベースを選択したりすることもあります。
作るテーブルとカラム
今回はreviewsとuser_tableという名前の二つのテーブルを作ります。
このテーブル名やこれから説明するカラム名は好きに変えてもいいですが、次回から解説するPHPコードはこのテーブル名とカラム名で組んでありますので、コードも直さないとエラーになります。
各テーブルのカラムは以下のように設定してください。
カラム名/型式(バイト数) の順で記載してあります。
テーブルreview
id/Int(255)/Auto Increment
sku/Varchar(300)
name/varchar(100)
email/Varcher(100)
review/Varchar(3000)
point/Int(1)
display/Int(1)
posttime/detatime
reply/Varcher(1000)
テーブルuser_table
id/Int(10)/Auto Incremen
email/Varchar(100)
password/Varchar(15)
テーブルreviewは、各レビューデーターを保存するテーブル。
テーブルuser_tableは、管理者データーを保存するテーブルです。
Auto Incrementとは、自動連番付与機能で、データーが入力されるたびに各レコードに順番にid番号を振ってくれます。
テーブルuser_tableにデータを入れる
サーバー管理システムですが、投稿者がレビューを投稿するフロントエンドは誰でもアクセスできるようになっています。
しかし、投稿を承認したり編集するバックエンドは管理者以外アクセスできないようにしなくてはいけません。
バックエンド画面にアクセスするには最初にログイン画面でメールアドレスとパスワードを入力します。
あらかじめテーブルuser_tableに記録しておいたメールアドレスとパスワードと整合していなければログインできないようにします。
複数の管理者を設定できるように、バックエンド画面には管理者の登録、編集画面も作ります。
管理者を登録するためにバックエンド画面にアクセスするにはログイン画面からログインするのですが、そのためのメールアドレスとパスワードをあらかじめテーブルに入力しておかなくてはいけません。
ですので、phpmyadminの画面を使ってテーブルuser_tablebにメイン管理者(オーナー)のメールアドレスとパスワードを入力しておいてください。
メイン管理者だけ登録しておけば、以降はそのメールアドレス、パスワードでバックエンド画面にログインし、その他の管理者を登録することができます。
以上でデータベースの準備は終了です。
以降、データベースの操作はすべてPHPプログラムで行いますので、もうサーバー管理画面からデータベースを開くことはありません。
万一、データベースエラーが出た場合は、PHPコード内のデータベース名やテーブル名、カラム名などに誤りがあるということなので、データベースを調べる前にPHPコードを調べてください。
次はいよいよPHPコードの解説に入っていきます。
この記事が気に入ったらサポートをしてみませんか?