Column >【PHP,MySQL】記事の一覧を表示させる
2016/8/25 【PHP,MySQL】記事の一覧を表示させる

今現在はコラムの更新に(一応)力を入れているこのサイトなのですが、
1つのコラムを書くたびに、TOPページの更新履歴と、コラムの記事一覧のページを
それぞれ書き換えなければいけないようになっています。

増える記事は1つなのに、3つのファイルを書き換えないといけないというのは
綺麗じゃないよなあと前々から思っていたのですが、
PHPとMySQLを使えばその問題が解決できるんじゃないか?と思ったので
やってみることにしました。







1. はじめに


PHPのプログラムを書くぞ!と意気込んだは良いのですが、
このサイトのURLを見てもらえば分かるように、
このサイトはfc2の無料のレンタルサーバーを使っています。

しかし、fc2の無料レンタルサーバーはPHPが使えません。
だったらプログラムなんて書けなくないか!?という気がしますが、
html上でPHPを読み込む際はJavaScriptの読み込みと同じような書き方ができるそうで、
その方法を使えば外部のサーバーにあるPHPの読み込みもできるようになるようです。

↓参考サイト↓

ですので、fc2ではない別のサーバーにPHPファイルを用意すれば、
無料版のfc2でもPHPが使えるということになります。

PHPを置いておくサーバーですが、できるなら
何でもかんでも無料にしたいなと思ったので
Xdomainの無料版PHP・MySQLサーバーを使用することにしました。



簡単に図にするとこんな感じです。



1つのサイトに複数のサーバーを使用してしまうと、
Xdomainかfc2のどちらかが動かなくなればサイトが正しく動かなくなってしまうので
若干危険度は上がるような気がしますが、
無料なんだから、それくらいは甘んじて受け入れるぜ!
という心意気でやってみることにします。


2. データベース
2-1. 仕様を決める


現状では、サイトのコラムを書いたときに更新しなければいけない
そのコラム以外のページは


トップページの更新履歴と


コラム一覧のページです。



この2つを見る感じだと、データベースに必要な要素は、
Id、記事のタイトル、記事のURL、更新日、記事のジャンル(ColumnやGame&Softなど)の5つ
また、トップページの更新履歴では、文字の大きさを調節するcssのクラスを使っているので
そのクラスの指定を入れた6つの要素が必要なのかなと思います。

そして、それぞれの要素の型は、Idがint型、更新日がdatetime型、
他の4つは文字列として使うのでvarchar型にすることにします。


2-2. データベース・テーブルの作成


データベースにどんなデータを保存するかを決めたので、
次はデータベースと、データベースに実際にデータを入れるためのテーブルを作ります。

Xdomainにログインしたら、無料レンタルサーバー、PHP・MySQLサーバー
MySQL設定の順に開いていきます。









次に、MySQL追加でデータベースを追加し、
MySQLユーザ設定でデータベースを扱うユーザを追加します。

そのあとで、データベースの追加可能ユーザからユーザを追加することで
そのユーザがデータベースを操作することができるようになります。

そして、phpmyadminを押してMySQLユーザ設定で追加したユーザの
名前とパスワードを入れることでMySQLの管理ツールである
phpmyadminにログインできます。






phpmyadminにログインした後は、データベースに新しいテーブルを作成する
という部分に名前とフィールド数を入力し、実行するを押します。



今回は要素数は6つなので、フィールド数を6にしています。



そうすると、各フィールドの名前や型を入力する画面になるので
入力し、保存するボタンを押します。



記事のタイトルやurlは、今現在で最も長いものが50文字程度だったため、
255文字分入るようにしておけば安心かなと思い、長さは255としています。


2-3. データの入力


これでデータを入れるためのテーブルは完成したので、
次はサイトで公開している記事のデータを実際に入れていきます。



phpmyadminの挿入タブを開いてデータを入力し、実行するを押します。
idはauto_incrementにしてあるため、挿入する際に値を指定しなくても
自動で1から順にインクリメントされてデータベースに入っていきます。



1つデータが入れば、後は同じようにしてひたすらデータを打ち込んでいきます。



とりあえず、今ある分のデータは全部入りました。


3. プログラム
3-1. PHPファイルの保存場所


これでデータベースは完成したので、後はPHPのプログラムを書くのみです!

Xdomainのサーバー管理パネルから、FTPアカウント設定を開いて
アカウント名の右の方にあるログインを押すと、ファイルマネージャーを開けるので
今から作るPHPファイルはそこに保存していきます。





3-2. Topページの更新履歴


まずはTopページの更新履歴を表示するためのプログラムを書いてみます。



今回はPHPをJavascriptとして出力しているので、そのことを示すための
header("Content-type: application/x-javascript");
というのを書く必要があります。

また、変数$hostにはMySQLのホスト名、
$usernameと$passにはMySQLを使用するユーザの名前とパスワード、
$dbnameにはデータベースの名前を入れました。



これでPHPのプログラムは書けました。
htmlからこのプログラムを呼び出すには、
更新履歴を書いていた部分に

というような感じの文を書いておきます。



これで更新履歴はphpで表示されるようになりました!

今までは

こんな感じで書いていた更新履歴ですが

こんな風に見た目にもスッキリとしました。


3-3. コラムの記事一覧


次はコラムの記事一覧を出すためのプログラムです。
下のようになりました。

基本的な流れとしては、Topページの更新履歴を出すのとさほど変わりません。
mysqli_query()やJavaScriptのdocument.write()の中で
シングルクオーテーションやダブルクオーテーションが必要になるので
何処に何個バックスラッシュを入れるかさえ気を付ければ大丈夫かなという感じです。



htmlのソースコードは、

これが

こうなりました。
すっきりですね。


4. あとがき


こんな感じで今回は終了です。
今までは1つの記事を更新するのに3つのhtmlファイルを更新しないとダメだったのが
1つのhtmlファイルを更新してデータベースにデータを入れるだけになりました。

これで少しはサイトの更新が楽になりましたが、
更新する記事自体にもまだ手を加えられそうな感じはあるので
そのうちやってみようかという感じです。
    Please
    Share!
  • feedly
  • facebook
  • twitter
  • hatena bookmark
  • pocket
  • Google plus


inserted by FC2 system