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 まとめ編です。
関連記事
-
-
CMSの大まかな構成
前回に引き続き、CMSの大まかな構成について話したいと思います。 HTMLサイトとの違い CMS
-
-
プログラミングをする上で超大切な検索方法の身につけ方
今日はプログラミングで大切な検索方法の身につけ方について私なりのコツなどを書いていこうかなと思います
-
-
XAMPPインストール
さて、XAMPPの初歩的な説明とエディタについて説明をしたところで実際にXAMPPをインストールして
-
-
よく使う処理をまとめよう その1 (関数)
おはようございます。松本です。 私の会社では10時半から掃除の時間でして、ここ数ヶ月ずっとやっ
-
-
初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編
前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を
-
-
お問い合わせフォームを作ろう! その1(HTML)
このサイト、PHPの学習サイトなのに内容から遠ざかっていました(爆) 個人的にはプログラミング
-
-
ガチンコ塾、人気記事ベスト5
このブログも開設して約半年たちましたね。 思った以上にたくさんの方に読んでもらえてうれしいです
-
-
プログラミングの基本ルール
ガチンコ松本です。 さて、準備が整ったところでさっそくPHPのコードを書いていきましょう!
-
-
無料プログラミングスクールのメリット・デメリット
一般的にプログラミングのスクールというのは高額です。 30万以上するような講座が普通なので、ぽ
-
-
PHPで掲示板を作ろう!(データベース編) その3 データベース作成編
ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。 前回までの記事 PHPで掲示板
Comment
[…] PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編 […]
[…] […]