勉強の記録投稿サイト制作のメモ
知識をアウトプットするため、PHPとMySQLを使ってアプリ制作をする。
制作の流れや気付きを順次追記していく。
アプリ制作の目的
・気づけばプロ並みPHP(書籍)で学んだことをアウトプットする
アプリ制作の心構え
・機能を最小限に抑える(いきなりあれもこれも入れない。あとから追加するか、また改めて多機能版を作れば良い。)
・とにかく完成させる。最初からクオリティにこだわらない。
・CSSも最小限か無しで完成とする。(たぶん)
どんなアプリを作るか
日々の勉強の記録を投稿するアプリ
とはいうが、基本は会員登録が必要な掲示板のようなものになる。
勉強の記録に特化した機能は今回はつけない。
あくまでも使用する目的を絞っているだけ。
どんな機能をつけるか
・会員登録
・ログイン、ログアウト
・新規投稿
・投稿の修正、削除
・投稿者の名前をクリックすると、その人の投稿だけが見られる
これだけの機能をつければ、CRUDはぜんぶ使ったことになるはず。
アプリ作成の手順
1. 必要な機能をリストアップ
2. 必要なページとそれぞれの繋がりを把握する
https://app.mural.co/t/test09960/m/test09960/1594975040649/359bf2bdb78e8203506874a9dd8de480fe6cd088
3. DBに必要なテーブルとカラムを決める
4. AdobeXDで簡易なカンプを作成
DBにテーブルを作成
DBに登録するテーブルとカラムを決める。
会員登録したうえで投稿していくことになるので、必要なのは
・会員テーブル
・投稿テーブル
■会員テーブル
・ID
・メールアドレス
・パスワード
・ニックネーム
・作成日
■投稿テーブルのカラム
・ID
・投稿ID
・本文
・投稿日時
・カテゴリ
投稿テーブルの本文カラムの型をどうするか
色々調べた結果、longtextにすることにした。
理由は、シェアの大きいWordpressがそうしているから。
型によって取り扱える(保存できる)データの最大長が違うので、どのくらいの文章量を許容するかで型を決める必要があるようだ。
■投稿フォームの入力チェック画面
投稿フォームは本文のみを入力するので、本文が入力されているかいないかをチェックし、未入力ならエラーを返して投稿フォームに戻すようにしたい。
ただ、本文が入力されているかどうかだけチェックする用の画面を作るのも無駄なので、今回はHTMLのrequired="required"で、未入力ならその場でエラーを出すようにする。
お名前<br>
<input type="text" name="onamae" style="width:200px" required="required"><br>
required="required"を追加すると、↓のようになる。(Chromeの場合)
■困ったこと
PDOステートメント
DB呼び出しにPDOステートメントを使っているが、PDOステートメントがなんなのかわかっていない。
以下のサイトが詳しいので読んで理解する。
・PDOの基礎 クラスとは?というところから解説されている。
・PHPでデータベースに接続するときのまとめ
DB接続時に書く$pdo = new PDO(~~~)といったコードを1つ1つ解説している。
この記事が気に入ったらサポートをしてみませんか?