PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編

今回はMySQLの第5回目の講義です。
前回までの記事
PHPで掲示板を作ろう!(データベース編) その1 データベースとは
PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編
PHPで掲示板を作ろう!(データベース編) その3 データベース作成編
PHPで掲示板を作ろう!(データベース編) その4 SQL編
前回まで、MySQLがどういうもので、実際にどのようにデータを扱うかを考えてきました。
ところが実際に黒い画面だけでMySQLを動かしてみてもわけがわかりません。
今回からは実際にMySQLを使ってWEB上の掲示板を作ってみようと思います。
画面のイメージ・仕様
今回MySQLで作成する掲示板はほぼ、前回のテキストファイルで使った掲示板と同様です。
機能は下記のようなものになります。
簡単な仕様
- 入力欄は名前とコメントの2つのみ
- 未入力があったら「名前とコメントを記入してください」と赤字で出力
- 未入力でない時は、「書き込みが成功しました」と黒字で出力
- 入力されたデータは常に下に表示
画面イメージ
※今回はデータベースの説明がメインだったので値の入力が不完全だったときに、入力値を保存する機能を外しています。
今回、データベースとつなぐのがメインになりますので、若干簡単なつくりにしましたが、基本的には前回の掲示板と同じものです。
この機能を見てなんてしょぼい掲示板だろう・・・と思われた方もいるかもしれません。
しかしプログラミングを学習し始めの方(1ヶ月程度)にとってはこれを実装するのはかなり大変です。
多くの方はこのレベルであっても気の遠くなるようなエラーを出しながらようやく正常に稼働するようになります。
プログラミング未経験者がちょこちょこっと勉強して簡単にWebサービスを作りました、みたいな話がネット上にはあふれていますが、身の回りに聞ける人がいたことに気づいていないか、よほどの天才か、非常にレアなケースです。
多くの方は最初はこのようなアプリを作ることすらかなり大変です。
逆にいうとしっかり勉強すれば後々の基礎になります。頑張っていきましょう。
ソース
まず最初にソースを書きます。
ちなみにデータベースはその1~その4で作ったものをそのまま使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php $db_host = 'localhost'; $db_name = 'board_db'; $db_user = 'board_user'; $db_pass = 'board_pass'; // データベースへ接続する $link = mysqli_connect( $db_host, $db_user, $db_pass, $db_name ); if ( $link !== false ) { $msg = ''; $err_msg = ''; if ( isset( $_POST['send'] ) === true ) { $name = $_POST['name'] ; $comment = $_POST['comment']; if ( $name !== '' && $comment !== '' ) { $query = " INSERT INTO board ( " . " name , " . " comment " . " ) VALUES ( " . "'" . mysqli_real_escape_string( $link, $name ) ."', " . "'" . mysqli_real_escape_string( $link, $comment ) . "'" ." ) "; $res = mysqli_query( $link, $query ); if ( $res !== false ) { $msg = '書き込みに成功しました'; }else{ $err_msg = '書き込みに失敗しました'; } }else{ $err_msg = '名前とコメントを記入してください'; } } $query = "SELECT id, name, comment FROM board"; $res = mysqli_query( $link,$query ); $data = array(); while( $row = mysqli_fetch_assoc( $res ) ) { array_push( $data, $row); } arsort( $data ); } else { echo "データベースの接続に失敗しました"; } // データベースへの接続を閉じる mysqli_close( $link ); ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <form method="post" action=""> 名前<input type="text" name="name" value="" /> コメント<textarea name="comment" rows="4" cols="20"></textarea> <input type="submit" name="send" value="書き込む" /> </form> <!-- ここに、書き込まれたデータを表示する --> <?php if ( $msg !== '' ) echo '<p>' . $msg . '</p>'; if ( $err_msg !== '' ) echo '<p style="color:#f00;">' . $err_msg . '</p>'; foreach( $data as $key => $val ){ echo $val['name'] . ' ' . $val['comment'] . '<br>'; } ?> </body> </html> |
次回以降、詳細な解説をしていきますが、ポイントとしては以下のような点です。
- PHPとデータベースの接続
- エラーチェック
- SQLをPHPにどう渡すか
- SELECT文の受け取り方
追記
この掲示板作成シリーズも結構長くなってきましたね。
いままでのシリーズに以下の点を改良させていただきました。
改良点 その1
シリーズものに関しては次の回にリンクをはりました。
今までありませんでしたので、次の回を探すのが大変だったのではないでしょうか。多少は見やすくなっているのではないかと思います。今まで大変だった方スイマセン・・・
改良点 その2
PHPで掲示板を作ろう!(データベース編) その3 データベース作成編に作業用ユーザーの追加の仕方を書きました。その2で書くといっておきながら書いてませんでした。予定と違うぞ!と思った方がいたらスイマセン・・
次の授業コンテンツはPHPで掲示板を作ろう!(データベース編) その6 まとめ編です。
関連記事
-
-
プログラミングを独学で身につけるための4ステップ(実践編)
前回の記事ではプログラミングを独学で身につけるための心構え的なお話をしました。 今回は、実際に
-
-
もうエラーメッセージで挫折しない! 4つのエラーメッセージ対処法
このブログで何回か書いたのですが、PHPに限らずプログラミングの独学はかなり難しいです。 その
-
-
15時間でプログラミング言語の基本をマスターする方法
今回は主に経験者向けの記事となります。 タイトルの通りなのですが、私が新しい言語をマスターする
-
-
文字化けを回避するには
こんにちは。松本です。 最近は実務ではJavaをやっていることが多いのですが、まだ普及していな
-
-
PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編
あ、最近はこのブログの画像に凝るようにしています。サイドバーなんかみていただくとブログのアイキャッチ
-
-
フレームワークのメリット・デメリット
こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島
-
-
PHPはなぜ簡単といわれるのか?
最近ではブラック企業と同じような意味合いでブラックバイトなんて言葉があるらしいですね。 ただ定
-
-
就職するときに見落としがちな考え方
今は自社で就職の斡旋などはしていないのですが、人材紹介会社で働いていたときは生徒の就職に立ち会ってき
-
-
プログラミングをする上で超大切な検索方法の身につけ方
今日はプログラミングで大切な検索方法の身につけ方について私なりのコツなどを書いていこうかなと思います
-
-
初心者が知っておくべきプログラミングの学習法
おはようございます。松本です。 最近、体重が増えているのが悩みでして今現在71kgあります。去
Comment
[…] PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編 […]
[…] […]