どうも、ゴトーだ。
1日目にできれば毎日アップしたいと言っていたが、2日目にして色々と手こずって毎日更新記録が途絶えてしまった。
まあ毎日アップすることが目的化しても仕方ないので、学習自体は毎日続けるが、何らかのアウトプットが出せない場合は他の投稿をしていきたいと思う。
2-3日目の成果物: ゲストブック
1日目のアクセスカウンターに続いて随分と古くさいものになっているが、いかんせんまだ素人なので当分は古くさいものを作っていくことになるだろう。
傍から見たら違いに気づかないだろうが、1日目はファイルを書き込んだり、読み込んでいることに対して、今回はデータベースを使っている。
データベースを使うことで何百万件とかそういった大量のデータを扱えるようになるらしいが、まだ入門書に載っている方法をなぞっているにすぎないので、必要に迫られたら本格的に勉強したいと思っている。
どうやって作ったのか
データベースはSQLという言語を使うことでデータを保存したり削除したり、読み込めたりといった柔軟なことができるものらしい。
PHPを使うことで簡単にデータベースを操作することができるので、それを自分なりに応用してみた。
今回はゲストブックということで、名前と何らかのメッセージを訪問者が残してくれたら、それをデータベースに保存して、保存されたデータはその都度表示するというものになっている。
原理的にはこのような形だ。
- アクセスしたときに保存されているデータを読み込み、HTMLに表示する
- ゲストブックに書き込んでくれるユーザーはフォームに値を入力して、送信ボタンを押すとデータがサーバーに送られる
- PHPを通じて送信されたデータを受け取って、それをもとにゲストブックの内容を保存する
- 保存されたデータは最新に表示される
何を学習したのか
フォーム
HTMLのフォームの原理は本を読んでいるときに理解して、それを実際に書き起こす作業をした。
今回はPOST通信でデータを送っている。
データベース
MySQLの学習をした、といってもサンプルコードをほとんどなぞって、自分で少しカスタマイズしただけ。
送った値をINSERTする文を作るのに少し手こずった。
Heroku
Herokuの基本的な部分は最初にやったことを繰り返せば良いのだが、HerokuはデフォルトでMySQLに対応していないようで、使えるようにするまでに一番時間がかかった。
無料プランでも使えるらしいが、クレジットカードの登録が必要だったり、リモートのMySQLに接続する方法がイマイチわからなかったりで苦労した。
結果的に入門サイトに書かれてあるとおりになぞったらできたが、もう一度やれと言われたら怪しい。
どのくらい時間がかかったか
なんだかんだで15時間くらいは費やしたような気がする。
相変わらず本や検索しないとなにもできない体たらく。
3日目終わっての感想
これまで使っていて原理がわからなかったものが、段々分かってくるのは中々楽しいし、今の所はしんどいよりも楽しさが勝っている。
一覧に並べるところとかも勝手にプログラムがやってくれるものだと思っていたけど、普通にループの中でHTMLをベタ打ちするなど案外原始的だったりする。
既に簡単な掲示板作りを初めているので、できれば明日にアップしたい。