講 義 内 容 ( 前 回 ) 提 出 課 題 の 解 答 例 PHPの 応 用 PHPからMySQLへのアクセス(レコードの 新 規 登 録 ) 2



Similar documents
( 前回 ) 提出課題 課題 1( 提出課題 ): データベースからデータを読み込み, そのデータを表示する Web ページ作成してみましょう user テーブルから書籍のデータを一覧表示する. 手順 1:PHP のファイルを user_list.php という名前で作業フォルダに作成する. プログ

2019年度 Webシステムプログラミングa

2003年度 情報処理概論

2019年度 Webシステムプログラミングa

研究者情報データベース

サーバサイドスクリプトPHPを実感しよう

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

データベースS 演習資料

目 次 1. ログイン/ログアウト 1.1 ログインする p ログアウトする p.3 2. 受 講 一 覧 画 面 p.4 3. 授 業 ページの 閲 覧 3.1 授 業 ページへの 遷 移 p 授 業 資 料 を IT s class.からダウンロードする p

Ver 改 訂 日 付 改 訂 内 容 1

講 義 内 容 前 回 の 提 出 課 題 の 解 答 例 復 習 データを 送 信 するための HTML (フォーム) PHPによるフォームデータの 処 理 2

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378>

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

Microsoft Word - サンプル _データベースアクセス_.doc

<4D F736F F D208E9197BF342D8EC08F4B87428EF68BC B834A E646F6378>

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

Meet-Me Number/Pattern の 設定

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

4.5. < 参 加 表 明 書 を 提 出 する> 調 達 案 件 一 覧 の 表 示 対 象 となる 案 件 を 検 索 し 調 達 案 件 一 覧 に 表 示 させます 参 加 したい 案 件 の 調 達 案 件 名 称 行 - 入 札 参 加 資 格 確 認 申 請 / 技 術 資 料 /

2. データを 検 索 する なごやコレクションのデータを 検 索 するための 方 法 として キーワード 検 索 詳 細 検 索 の 二 通 りの 検 索 方 法 が あります 2.1. キーワードから 探 す キーワードを 入 力 する トップページの 入 力 ボックスに 検 索

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

複合検索機能マニュアル

振込データの作成

請 求 データを 作 成 しましょう 操 作 手 順 1 トップページ 画 面 で [ 口 座 振 替 請 求 ]をクリックして 口 座 振 替 請 求 サービスのメインメニュー 画 面 を 表 示 し [ 請 求 データ 作 成 ]をクリックします 請 求 データは 最 大 10 個 作 成 する

Microsoft Word - word_05.docx

WEBメールシステム 操作手順書

あいち電子調達共同システム

SoftBank 202F 取扱説明書

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

~モバイルを知る~ 日常生活とモバイルコンピューティング

Microsoft Word - 第3章.doc

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

~モバイルを知る~ 日常生活とモバイルコンピューティング

1

コンピュータサイエンス 4. ウェブプログラミング

サポートシステム操作説明書

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

PATENTBOY/Netバージョンアップ説明書(Ver.1.92)

おすすめページ

文書管理

1.3 利 用 方 法 図 1 国 立 国 会 図 書 館 デジタルコレクション 送 信 サービスの 対 象 資 料 本 文 の 閲 覧 は 図 書 館 サービスカウンター 備 え 付 けの 専 用 パソコン(1 台 )のみでの 利 用 となります 利 用

第 1 章 共 通 操 作 1.1 ログイン PIN 番 号 入 力 (1) 大 阪 府 電 子 入 札 システム トップ 画 面 より 1 電 子 入 札 システム ボタンをクリックし ます 1 1-2

06.9- はじめての 本 や 論 文 の 探 し 東 京 大 学 本 部 情 報 基 盤 課 [ 学 術 情 報 リテラシー 担 当 ] TREE(UTokyo REsource Explorer)とは TREE [UTokyo REsource Explorer] は シンプルに ひとつ

<はじめに> この 手 順 書 では 社 労 夢 を 用 いてe-Govの 社 会 保 険 様 式 記 入 方 式 の 一 括 申 請 の 手 順 について 説 明 させていただきます ⅰ 氏 名 変 更 届 2ページから ⅱ-1 被 扶 養 者 ( 異 動 ) 届 3ページから ⅱ-2 3 第 号

I 自 動 収 録 編 1. スケジュールを 登 録 MPMeisterIIe コンテンツ 関 連 付 け 制 御 システム に 授 業 のスケジュールを 登 録 します MPMeisterIIe コンテンツ 関 連 付 け 制 御 システム ( 上 :スケジュール 登 録 画 面 右 : 登 録

スライド 1

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

2. 研 究 者 / 評 価 者 情 報 修 正 この 画 面 では 研 究 者 が 自 分 自 身 の 情 報 の 修 正 を 行 います (A) 研 究 者 / 評 価 者 情 報 の 修 正 () 研 究 者 / 評 価 者 情 報 修 正 画 面 を 開 く HOME 画 面 メニューの 研

e-class

■新聞記事

WebMail ユーザーズガイド

Ⅰ. 各 種 文 書 作 成 メニュー 項 目 説 明 各 種 文 書 作 成 メニューでは 共 通 で 使 える 便 利 な 機 能 がございます テンプレート 機 能 引 用 文 を 貼 り 付 けることができます 複 写 (コピー) 機 能 作 成 した 帳 票 をコピー 編 集 することがで

Microsoft PowerPoint - INIS_Collection_Srh_Quickmamual(Japanese)

1. 目 次 1. 目 次 2.はじめに 2-1.メールテンプレート 編 集 機 能 とは? 2-2. 対 象 読 者 3. 用 語 一 覧 4. 利 用 の 流 れ 4-1.メールテンプレート 編 集 の 流 れ 5. 機 能 説 明 利 用 方 法 5-1.テキストメール 編 集 開 封 率 を

メール 受 信 画 面 のレイアウトを 変 更 することができます ここでは 初 期 設 定 のレイアウトで 表 示 されているボタ ンやマークについて 解 説 します メール 一 覧 画 面 には 受 信 したメールが 一 覧 表 示 されます メール 受 信 タブをクリックすると 受 信 箱 フ

方程式を解いてみよう! C++ から PHP + JavaScriptへ

産 前 産 後 休 業 終 了 時 報 酬 月 額 変 更 届. 事 前 準 備. 作 成 画 面 の 起 動 方 法 4. 基 本 データの 登 録 5 4. 届 出 書 の 作 成 7 5. 電 子 申 請 8 6. 申 請 後 のデータ 確 認 方 法 9

改 訂 履 歴 訂 番 日 付 頁 変 更 内 容 /02/28 - 新 規 作 成 /11/07 表 紙 タイトルを 修 正 修 正 前 : 東 日 本 大 震 災 アーカイブデータベースシステム 修 正 後 : 災 害 アーカイブデータベースシステム 改

■ディレクトリ

Microsoft Word - 生物学技研報告ONLINE ガイドブック.doc

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

1/2

(Microsoft Word - Word\211\236\227p8\217\315.docx)

R4財務対応障害一覧

01_07_01 データのインポート_エクスポート_1

データコピーとは データコピーは 古 い NAS のデータを 新 しい HDL-Z シリーズに 簡 単 にコピーできます 環 境 例 本 製 品 は 以 下 の 用 途 の 際 に 最 適 です 古 い HDL-Z シリーズから 新 しい HDL-Z シリーズへのコピー 古 い HDL-Z シリーズ

目 次 遺 失 物 管 理 プログラム 利 用 者 マニュアル 1. 動 作 条 件 遺 失 物 管 理 プログラムのインストール 運 用 の 流 れ 起 動 方 法 操 作 方 法 について 基 本 的 な 操

別冊資料-11

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

Microsoft Word - 0_表紙(医).doc

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

<4D F736F F D ED28FDA8DD7837D836A B2E646F6378>

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

ことばを覚える

2

スライドの 編 集 とリンク スライドのレイアウトやデザインが 決 まったら 文 字 の 編 集 をしたり スライドの 順 序 変 更 やリンク 設 定 をして 見 栄 えの 良 いプレゼンテーションを 作 成 しましょう ファイル MP05 完 成.ppt を 開 き 内 容 を 編 集 していき

検 索 文 字 列 が 住 所 にマッチするならば 地 図 画 面 を 表 示 します 検 索 文 字 列 が 住 所 の 一 部 ならば キーワードを 含 む 検 索 結 果 画 面 を 表 示 します

(3) 下 記 画 面 が 表 示 されます 参 照 ボタンを 押 下 すると 図 5.1-4フォルダ 指 定 画 面 が 表 示 されるので 保 存 先 を 指 定 し OKボタン を 押 下 します 展 開 ボタンを 押 下 します 図 ファイルの 展 開 先 ( 保 存 場 所 )

~モバイルを知る~ 日常生活とモバイルコンピューティング

文科省様式3-2集計オプションマニュアル

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

タグの 内 側 で 関 数 を 定 義 してタグ 側 で 実 行 することもできます <TITLE>JavaScript サンプル</TITLE> function write(str) { document.write(str); } write('hello World!'); 上 例 のように

縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

スライド 1

Microsoft Word - 情報メディア利用ガイド2014

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

1.3. アドインボタンの 場 所 2007 / 2010 / 2013 / 2016 の 各 バージョンのアプリケーションにおいては アドインボタン はリボン 名 アンテナハウス に 登 録 されます アドインボタンの 表 示 状 態 (Word 2010 の 例 ) アドインボタンの 表 示 状

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

改 定 履 歴 改 訂 日 改 訂 理 由 及 び 内 容 承 認 者 確 認 者 改 訂 者 05/8/7 新 版 発 行 05/0/5 推 奨 動 作 環 境 を 追 記

<4D F736F F D B68F918DEC90AC89898F4B899E977095D2816A2E646F63>

<4D F736F F D208AEB8CAF89D38F8A B E64726F696494C DEC837D836A B2E646F6378>

~ 目 次 ~ 1. 履 修 登 録 のながれ 1 2. 利 用 可 能 な 機 能 について 2 3.Web 履 修 登 録 画 面 へのログイン ログアウト 方 法 3 4. 予 備 登 録 ( 定 員 設 定 科 目 の 履 修 ) (1) 予 備 登 録 5 (2) 予 備 登 録 状 況

DN6(R04).vin

Microsoft Word - WBT(PP応用編).docx

Transcription:

2015 年 度 Webシステムプログラミング a PHPによるDB 操 作 (3)

講 義 内 容 ( 前 回 ) 提 出 課 題 の 解 答 例 PHPの 応 用 PHPからMySQLへのアクセス(レコードの 新 規 登 録 ) 2

( 前 回 ) 提 出 課 題 課 題 1( 提 出 課 題 ):データベースからデータを 読 み 込 み,その データを 表 示 するWebページ 作 成 してみましょう user テーブルから 書 籍 のデータを 一 覧 表 示 する. 手 順 1:PHPのファイルを user_list.php という 名 前 で 作 業 フォルダに 作 成 する. プログラムは 自 分 で 考 える. 手 順 2:Webブラウザで 手 順 1で 作 成 したページにアクセスし 確 認 する. http://localhost/php04/user_list.php 3

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 利 用 者 一 覧 </title> </head> <body> <h2> 利 用 者 一 覧 </h2> 解 答 <?php try { データベース // 処 理 の 例 外 範 囲 始 まり // データベースへの 接 続 $db = new PDO('mysql:host=localhost:63306;dbname= j01234_db ;charset=utf8',' j01234 ','hogehoge '); $db->setattribute(pdo::attr_errmode, エラー 時 PDO::ERRMODE_EXCEPTION); に 例 外 発 生 させるように 設 定 / // SQL 文 の 準 備 と 実 行 $sql = $db->prepare("select user ;"); * FROM $sql->execute(); // レコードごとの 処 理 while( $row = $sql->fetch() ) { echo $row[' user_id ']. " "; echo $row[' name ']. " "; echo $row[' address ']. " "; echo $row[' tel']. " "; echo $row[' birth ']. " "; echo $row[' reg_date ']. "<br>"; } } catch( PDOException データベース $e 処 理 の ){ 例 外 キャッチ // exit(' データベース 処 理 失 敗 :'.$e->getmessage()); }?> </body> </html> user_list.php

( 前 回 ) 提 出 課 題 課 題 2( 提 出 課 題 ): 検 索 キーワードを 入 力 し 検 索 ボタンを 押 すと, 入 力 されたキーワードを 氏 名 に 含 む 利 用 者 の 一 覧 を 表 示 するWebページを 作 り ましょう. 手 順 1:HTMLのファイル( キーワード 入 Webページ)を 力 input_keyword_user.html という 名 前 で 作 業 フォルダに 作 成 する. 手 順 2:PHPプログラムのファイルを search_user.php という 名 前 で 作 業 フォル ダに 作 成 する( 前 回 の 資 料 を 参 考 にすること). 手 順 3:Webブラウザで 手 順 1で 作 成 したページにアクセスし 確 認 する. http://localhost/php04/input_keyword_user.html 田 keyword input_keyword_user.html search_user.php

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> ユーザ 検 索 </title> </head> <body> <h2> ユーザ 検 索 </h2> 解 答 <form action="search_user.php" method="get"> <p> 氏 名 キーワード:<input type="text" name="keyword"> </p> <p> <input type="submit" 検 索 "> value=" </p> </form> </body> </html> input_keyword_user.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 利 用 者 一 覧 </title> </head> <body> <h2> 利 用 者 一 覧 </h2> <?php 解 答 $keyword = $_GET["keyword"]; フォームデータ"keyword" の 取 得 // echo 検 "<p> 索 キーワード: {$keyword}</p>"; try { データベース // 処 理 の 例 外 範 囲 始 まり // データベースへの 接 続 $db = new PDO('mysql:host=localhost:63306;dbname=j01234_db;char $db->setattribute(pdo::attr_errmode, エラー 時 PDO::ERRMODE_EXCEPTION); に 例 外 発 生 させるように 設 定 / // SQL 文 の 準 備 と 実 行 $sql = $db->prepare("select * FROM user WHERE name LIKE?"); $sql->bindvalue(1,"%{$keyword}%"); $sql->execute(); 次 につづく search_user.php

echo "<table>"; echo "<tr bgcolor='#99ff99'><th> ユーザ 番 号 </th><th> 氏 名 </th><th> 住 所 </th><th> 電 話 番 号 </th><th> 生 年 月 日 </th><th> 登 録 年 月 日 </th></tr>"; // レコードごとの 処 理 while( $row = $sql->fetch() ) { echo "<tr bgcolor='#eeeeee'>"; echo "<td>". $row['user_id']. "</td>"; echo "<td>". $row['name']. "</td>"; echo "<td>". $row['address']. "</td>"; echo "<td>". $row['tel']. "</td>"; echo "<td>". $row['birth']. "</td>"; echo "<td>". $row['reg_date']. "</td>"; echo "</tr>"; } echo "</table>"; } catch( PDOException データベース $e 処 理 の ){ 例 外 キャッチ // exit(' データベース 処 理 失 敗 :'.$e->getmessage()); }?> </body> </html> 解 答 search_user.php

( 前 回 ) 提 出 課 題 課 題 3( 提 出 課 題 ): 検 索 キーワードを 入 力 し 検 索 ボタンを 押 すと, 入 力 されたキーワードを 書 名 (タイトル) または 著 者 に 含 む 書 籍 の 一 覧 を 表 示 す るWebページを 作 りましょう. 手 順 1: 実 習 3で 作 成 した input_keyword_book.php をコピーして, 名 前 を input_keyword_book2.php に 変 えるする. 手 順 2: input_keyword_book2.php について 適 宜 プログラムを 変 更 する. 手 順 3: 実 習 3で 作 成 した search_book.php をコピーして, 名 前 を search_book2.php する. 手 順 4: search_book2.php について 適 宜 プログラムを 変 更 する. 手 順 5:Webブラウザで 手 順 1で 作 成 したページにアクセスし 確 認 する. http://localhost/php04/input_keyword_book2.html 産 業 keyword input_keyword_book2.html search_book2.php

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 検 索 </title> </head> <body> <h2> 書 籍 検 索 </h2> 解 答 <form action="search_book2.php" method="get"> <p> 書 名 著 者 名 キーワード:<input type="text" name="keyword"> </p> <p> <input type="submit" 検 索 "> value=" </p> </form> </body> </html> input_keyword_book2.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 一 覧 </title> </head> <body> <h2> 書 籍 一 覧 </h2> <?php $keyword = $_GET["keyword"]; フォームデータ"keyword" の 取 得 // echo 検 "<p> 索 キーワード: {$keyword}</p>"; try { データベース // 処 理 の 例 外 範 囲 始 まり 解 答 // データベースへの 接 続 $db = new PDO('mysql:host=localhost:63306;dbname=j01234_db;char $db->setattribute(pdo::attr_errmode, エラー PDO::ERRMODE_EXCEPTION); 時 に 例 外 発 生 させるように 設 定 // SQL 文 の 準 備 と 実 行 $sql = $db->prepare("select * FROM book WHERE title LIKE? OR a $sql->bindvalue(1,"%{$keyword}%"); $sql->bindvalue(2,"%{$keyword}%"); $sql->execute(); 次 につづく search_book2.php

echo "<table>"; echo "<tr bgcolor='#99ff99'><th>isbn</th><th> タイトル</th><th> 著 者 </th><th> 出 版 社 </th><th> 発 行 日 </th><th> 価 格 </th></tr>"; // レコードごとの 処 理 while( $row = $sql->fetch() ) { echo "<tr bgcolor='#eeeeee'>"; echo "<td>". $row['isbn']. "</td>"; echo "<td>". $row['title']. "</td>"; echo "<td>". $row['author']. "</td>"; echo "<td>". $row['publisher']. "</td>"; echo "<td>". $row['pub_date']. "</td>"; echo "<td>". $row['price']. "</td>"; echo "</tr>"; } echo "</table>"; } catch( PDOException データベース $e 処 理 の ){ 例 外 キャッチ // exit(' データベース 処 理 失 敗 :'.$e->getmessage()); }?> </body> </html> 解 答 search_book2.php

ヒ ン ト は 次 ペ ー ジ ( 前 回 ) 提 出 課 題 課 題 4(オプション 課 題 ): 検 索 キーワードを 入 力 し 検 索 ボタンを 押 すと, 入 力 されたキーワードを 書 名 (タイトル) または 著 者 に 含 む 書 籍 の 一 覧 を 表 示 し,キーワードを 黄 色 でハイライトするWebページを 作 りましょう. 手 順 1: 課 題 3で 作 成 した input_keyword_book2.php をコピーして, 名 前 を input_keyword_book3.php に 変 えるする. 手 順 2: input_keyword_book3.php について 適 宜 プログラムを 変 更 する. 手 順 3: 課 題 3で 作 成 した search_book2.php をコピーして, 名 前 を search_book3.php する. 手 順 4: search_book3.php について 適 宜 プログラムを 変 更 する. 手 順 5:Webブラウザで 手 順 1で 作 成 したページにアクセスし 確 認 する. http://localhost/php04/input_keyword_book3.html 産 業 keyword search_book3.php input_keyword_book3.html

( 前 回 ) 提 出 課 題 課 題 4(オプション 課 題 )のヒント ハイライトするHTMLタグ <mark> ハイライトしたい 文 字 </mark> 列 経 済 <mark> 産 業 </mark> 省 PHPでの 文 字 列 の 置 換 対 象 文 字 列 の 中 から, 検 索 文 字 列 を 探 し, 当 該 部 分 を 指 定 した 置 換 後 文 字 列 に 置 き 換 える. str_replace( 検 索 文 字 列, 置 換 後 文 字 列, 対 象 文 字 列 ) $val = " 山 田 さんと 卓 球 をした. 山 田 さんは 卓 球 がうまい."; 山 田 さんと 卓 球 をした. 山 田 さんは 卓 球 がうまい. echo $val; 城 之 内 さんと 卓 球 をした. 城 之 内 さんは 卓 球 がうまい. echo str_replace (" 山 田 ", 城 之 " 内 ", $val );

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 検 索 </title> </head> <body> <h2> 書 籍 検 索 </h2> 解 答 <form action="search_book3.php" method="get"> <p> 書 名 著 者 名 キーワード:<input type="text" name="keyword"> </p> <p> <input type="submit" 検 索 "> value=" </p> </form> </body> </html> input_keyword_book3.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 一 覧 </title> </head> <body> <h2> 書 籍 一 覧 </h2> <?php $keyword = $_GET["keyword"]; フォームデータ"keyword" の 取 得 // echo 検 "<p> 索 キーワード: {$keyword}</p>"; try { データベース // 処 理 の 例 外 範 囲 始 まり 解 答 // データベースへの 接 続 $db = new PDO('mysql:host=localhost:63306;dbname=j01234_db;char $db->setattribute(pdo::attr_errmode, エラー PDO::ERRMODE_EXCEPTION); 時 に 例 外 発 生 させるように 設 定 // SQL 文 の 準 備 と 実 行 $sql = $db->prepare("select * FROM book WHERE title LIKE? OR a $sql->bindvalue(1,"%{$keyword}%"); $sql->bindvalue(2,"%{$keyword}%"); $sql->execute(); 次 につづく search_book3.php

echo "<table>"; echo "<tr bgcolor='#99ff99'><th>isbn</th><th> タイトル</th><th> 著 者 </th><th> 出 版 社 </th><th> 発 行 日 </th><th> 価 格 </th></tr>"; // レコードごとの 処 理 while( $row = $sql->fetch() ) { echo "<tr bgcolor='#eeeeee'>"; echo "<td>". $row['isbn']. "</td>"; echo "<td>" str_replace($keyword,"<mark>{$keyword}</mark>",$row['ti.. "</td>"; echo "<td>" str_replace($keyword,"<mark>{$keyword}</mark>",$row['au.. "</td>"; echo "<td>". $row['publisher']. "</td>"; echo "<td>". $row['pub_date']. "</td>"; echo "<td>". $row['price']. "</td>"; echo "</tr>"; } echo "</table>"; } catch( PDOException データベース $e 処 理 の ){ 例 外 キャッチ // exit(' データベース 処 理 失 敗 :'.$e->getmessage()); }?> </body> </html> 解 答 search_book3.php

PHPの 応 用 (1) 変 数 が 存 在 するか 調 べる(isset 関 数 ) isset ( 調 べたい 変 数 の 名 前 ) 指 定 した 変 数 が 存 在 している 場 合 はTRUE を 返 す. 指 定 した 変 数 が 存 在 していない 場 合 ( 存 在 していても NULL の 場 合 )はFALSE を 返 す. 連 想 配 列 にも 使 える(ある 連 想 配 列 の 指 定 したキーの 要 素 が 存 在 するかどうか). 主 に if 文 の 条 件 式 に 用 いる. 特 にフォームデータの 入 力 チェックに 使 われる. if( isset ( $hoge ) ){ // 変 数 $hoge が 存 在 しているときの 処 理 } if(!isset ( $hoge ) ){ // 変 数 $hoge が 存 在 していないときの 処 理 } if( isset ( $_GET[' hoge ']) && $_GET[' hoge ']!="" ){ // フォームデータhoge が 存 在 していて,かつ, 何 か 入 力 されているとき の 処 理 } 18

演 習 の 準 備 実 習 0: 本 日 の 演 習 用 作 業 フォルダを 作 成 しましょう. 手 順 1: 以 下 のフォルダの 中 に, 新 規 フォルダ php05 を 作 成 する. Z: xampp htdocs 以 下, 本 日 の 演 習 でのファイルはすべてこの php05 フォルダに 作 成 する こと.

PHPの 応 用 (2) 実 習 1: 書 籍 検 索 結 果 ページを 書 籍 一 覧 ページとしても 使 えるようにしま しょう.まずは 現 状 でエラーが 表 示 されることを 確 認 してみます. 手 順 1: 前 回 の 作 業 フォルダ( PHP04 )から 書 籍 検 索 結 果 を 表 示 する PHPプロ グラム( search_book2.php )を, 今 回 の 作 業 フォルダ( PHP05 )にコピーする ( 作 成 していない 場 合 はこの 資 料 の( 前 回 ) 課 題 3 解 答 を 参 照 し 作 成 ). 手 順 2:Webブラウザで 手 順 1で 作 成 したページに( 直 接 )アクセスする. http://localhost/php05/search_book2.php 手 順 3:エラーメッセージが 表 示 されていることを 確 認 する. search_book2. 直 接 アクセス フォームデータ 無 し エラーメッセージ ( 存 在 しないフォームデータkeyword を 参 照 した) フォームデータ 有 り 経 済 keyword input_search_book2.php

search_book2.p PHPの 応 用 (3) <?php 実 習 2: 書 籍 検 索 結 果 ページを 書 籍 一 覧 ページとしても 使 えるようにしま しょう(= 検 索 キーワードの フォームデータがない 場 合 は, 全 書 籍 の 一 覧 表 示 を 行 う). 手 順 1: 作 業 フォルダ( PHP05 )の 書 籍 検 索 結 果 を 表 示 する PHPプログラム ( search_book2.php )において, 以 下 の 部 分 を 変 更 する(???の 部 分 は 自 分 で 考 える). $keyword = $_GET["keyword"]; フォームデータ"keyword" の 取 得 // echo 検 "<p> 索 キーワード: {$keyword}</p>"; try { データベース // 処 理 の 例 外 範 囲 始 まり <?php // フォームデータkeyword が 存 在 し,かつ, 空 文 字 でないかチェック if(???($_get["???"])???$_get["keyword"]!="" ){ $keyword = $_GET["keyword"]; フォームデータ"keyword" の 取 得 // echo 検 "<p> 索 キーワード: {$keyword}</p>"; } else { $keyword = ""; } try { データベース // 処 理 の 例 外 範 囲 始 まり 手 順 2:Webブラウザで 手 順 1で 作 成 したページに( 直 接 )アクセスする. http://localhost/php05/search_book2.php 手 順 3:エラーメッセージが 表 示 されないことを 確 認 する. 直 接 アクセス フォームデータ 無 し

復 習 PHPからMySQLへのアクセス(1) データベース 管 理 システムへの 接 続 $db = PDO("mysql:host= new IPアドレスまたはホスト :ポート 名 番 号 ;dbname= 選 択 するデータベース 名 ;charset= 文 字 コード", "DBMS でのユーザ 名 ", パスワード"); " PHPでDBへアクセスするにはPDO(PHP Data ) Object クラスを 使 用 する( PDOはDBへのさ まざまな 処 理 をまとめたクラス. MySQL 以 外 にも 対 応 ). 以 降 変 数 $db(=pdo オブジェクト) を 通 してデータベースにアクセスできる. 例 外 PDOException クラスが 発 生 する 可 能 性 あり( 以 降 のPDOに 対 する 各 メソッドも). もちろん 変 数 $dbは 違 う 名 前 でもよい. <?php try { $db new = PDO('mysql:host= localhost:63306 ;dbname= j01234_db ;charset= utf8 ',' j01234 ',' hogehoge '); } catch (PDOException $e) { exit('データベース 接 続 失 敗 :'.$e->getmessage()); }?> 関 数 exit() はそれ 以 降 のスクリプトの 処 理 を 停 止 する 関 数 ( 引 数 は 表 示 メッセージ). 22

復 習 PHPからMySQLへのアクセス(2) SQLオブジェクトの 準 備 $sql = prepare $db-> ("SQL 文 "); SQLの 実 行 $sql-> execute (); 変 数 $dbはpdoオブジェクト 変 数 $sql は 違 う 名 前 でもよい 変 数 $sql はSQLオブジェクト <?php $sql = prepare $db-> ("SELECT * FROM "); book; $sql-> execute ();?> 23

復 習 PHPからMySQLへのアクセス(3) SQLの 実 行 結 果 からレコードを 取 得 $row = fetch $sql-> (); 変 数 $sql はSQLオブジェクト. fetch() メソッドを 呼 び 出 すたびに 実 行 結 果 から 1レコードずつ 取 得 (もうレコードが 無 い 場 合 はFALSE を 返 す). 変 数 $row に1 行 分 のレコードが 連 想 配 列 として 代 入 される(キーはフィールド 名 ). 変 数 $row は 違 う 名 前 でもよい. レコードからフィールド 値 の 取 得 $row[' フィールド 名 '] $row は fetch() メソッドの 戻 り 値 注 意 : 条 件 式 が 代 入 文 条 件 式 が 代 入 文 である 場 合 は, 先 に 代 入 文 が 実 行 され る(= 変 数 に 値 が 代 入 される). 条 件 式 のチェックはその 変 数 の 中 身 について 行 われる. この 例 の 場 合 はレコードが 取 得 できた 場 合 に 繰 り 返 す( メソッドfetch() がFALSE を 返 すまで). 24 他 のプログラミング 言 語 でもよく 使 われる. <?php while( $row = fetch $sql-> ()) { echo $row['name'] ; echo $row['address'] ; }?>

復 習 PHPからMySQLへのアクセス (+ユーザからの 入 力 )(1) SQLインジェクション <html> <form action=" search.php " methoc="get"> 検 索 する 書 籍 タイトル:<br> <input tyoe="text" title "> name="?> ユーザからの 入 力 データをSQL 文 の 条 件 値 として 利 用 した 場 合 に, 入 力 データによって 意 図 しない 不 正 な 実 行 が 行 われること. book_search.html http://www.hoge.jp/book_search.html <?php $val= $_GET[' title ']; $sql = $db->prepare(" SELECT * FROM book " $val. WHERE. "'"); title= $sql ->execute();?> search.php 検 索 する 書 籍 タイトル: データベース 入 門 SELECT * FROM book データベース WHERE 入 門 ' title=' http://www.hoge.jp/book_search.html 検 索 する 書 籍 タイトル: ';DELETE FROM book;# SELECT * FROM book ';DELETE WHERE title=' FROM bo

復 習 PHPからMySQLへのアクセス (+ユーザからの 入 力 )(2) SQLオブジェクトの 準 備 (プレースホルダ 付 き) $sql = prepare $db-> ("プレースホルダを 含 むSQL 文 "); インジェクション 対 として,ユーザの 策 入 力 データをSQL 文 の 値 として 使 用 する 場 合 にはプレースホルダを 使 う. プレースホルダとは 後 で( 以 下 のbindValue 実 行 時 ) 具 体 的 な 値 に 置 換 される 部 分.? で 記 述 する. SQL 文 の 中 でプレースホルダは 複 数 記 述 可 能. $dbはpdo オブジェクト.$sql は 他 の 名 前 でもよい. プレーホルダへの 値 の 設 定 (=バインド) $sql-> bindvalue (プレースホルダ 番 号, 設 定 したい 値 ); ブレースホルダ 番 号 はSQL 文 の 中 での どのプレースホルダか を 指 定 する 番 SQL 号 文 ( 内 での 記 述 順 に1,2,3.). <?php $val1 = $_GET[' title ']; $val2 = $_GET[' author ']; $sql = $db->prepare(" SELECT * FROM book?or WHERE author=?"); title= $sql-> bindvalue ( 1, $val1 ); // 1 番 目 のプレースホルダに$val1 $sql-> bindvalue ( 2, $val2 ); // 2 番 目 のプレースホルダに$val2 $$sql->execute(); 26 $sql = $db->prepare( );?> と 書 いてはいけない( SQLインジェクションの 危 険 性 ) "SELECT * FROM book WHERE title='". $val1. "' O

PHPからMySQLへのアクセス (レコードの 新 規 登 録 )(1) 実 習 3: 書 籍 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 されたデータで 書 籍 テーブルにレコードを 新 規 登 録 するWebページを 作 りましょう. 手 順 1:HTMLのファイル( 書 籍 情 報 の 入 力 Webページ)を input_regist_book.html という 名 前 で 作 業 フォルダに 作 成 する. 手 順 2:PHPプログラムのファイルを regist_book.php という 名 前 で 作 業 フォル ダに 作 成 する. 手 順 3:Webブラウザで 手 順 1で 作 成 したページにアクセスする. http://localhost/php05/input_regist_book.html 手 順 4: 以 下 の 書 籍 情 報 を 入 力 し, 登 録 ボタンを 押 す. ISBN: 4320123190 書 名 : Webシステムの 開 発 技 術 と 活 用 方 法 著 者 名 : 速 水 治 夫 他 出 版 社 : 共 立 出 版 発 行 日 :2013/3/9 価 格 : 2800 手 順 5: 登 録 処 理 ページから 書 籍 一 覧 へ のリンクへ 飛 び, 新 規 登 録 した 書 籍 情 報 が 一 覧 にあることを 確 認 する.

PHPからMySQLへのアクセス (レコードの 新 規 登 録 )(1) 実 習 3: 書 籍 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 されたデータで 書 籍 テーブルにレコードを 新 規 登 録 するWebページを 作 りましょう. 4320123190 ISBN Webシステムの 開 発 技 術 と 活 用 方 法 title 速 水 治 夫 他 出 版 社 author publisher input_regist_book.html 2800 2013/3/9 price pub_date regist_book.php search_book2.php

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 登 録 </title> </head> <body> <h2> 書 籍 登 録 </h2> <form action="regist_book.php" method="get"> <p> ISBN :<input type="text" name="isbn"> <br> 書 名 :<input type="text" name="title"> <br> 著 者 名 :<input type="text" name="author"> <br> 出 版 社 :<input type="text" name="publisher"> <br> 発 行 日 :<input type="text" name="pub_date"> <br> 価 格 :<input type="text" name="price"> </p> <p> <input type="submit" 登 録 "> value=" </p> </form> </body> </html> input_regist_book.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title> 書 籍 登 録 </title> </head> <body> <h2> 書 籍 登 録 </h2> <?php // フォームデータの 取 得 $ISBN = $_GET["ISBN"]; $title = $_GET["title"]; $author = $_GET["author"]; $publisher = $_GET["publisher"]; $pub_date = $_GET["pub_date"]; $price = $_GET["price"]; try { データベース // 処 理 の 例 外 範 囲 始 まり // データベースへの 接 続 $db = new PDO('mysql:host=localhost:63306;dbname=???;charset=utf8','???','???'); $db->setattribute(pdo::attr_errmode, エラー PDO::ERRMODE_EXCEPTION); 時 に 例 外 発 生 させるように 設 定 ( 次 ページにつづく) regist_book.php

// 文 SQL の 準 備 と 実 行 $sql = $db->prepare("??? INTO???(ISBN,???,author,publisher,pub_date,price)???(?,?,?,?,?,?)"); $sql->bindvalue(???,???); $sql->bindvalue(???,???); $sql->bindvalue(???,???); $sql->bindvalue(???,???); $sql->bindvalue(???,???); $sql->bindvalue(6, $price); $sql->execute(); } catch( PDOException データベース $e 処 理 の ){ 例 外 キャッチ // exit(' データベース 処 理 失 敗 :'.$e->getmessage()); } echo データベースに " 以 下 の 書 籍 情 報 を 登 録 しました "; echo "<p>"; echo "ISBN: {$ISBN}<br>"; echo 書 名 :" {$title}<br>"; echo 著 者 名 ": {$author}<br>"; echo 出 版 社 ": {$publisher}<br>"; echo 発 行 日 ": {$pub_date}<br>"; echo 価 格 :" {$price}"; echo "</p>"; echo "<a href='search_book2.php'> 書 籍 一 覧 ページへ</a>";?> </body> </html> regist_book.php

提 出 課 題 課 題 1( 提 出 課 題 ): 利 用 者 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 さ れたデータで 利 用 者 (user)テーブルにレコードを 新 規 登 録 するWebページ を 作 りましょう. 手 順 1:HTMLのファイル( 利 用 者 情 報 の 入 力 Webページ)を input_regist_user.html とい う 名 前 で 作 業 フォルダに 作 成 する. 手 順 2:DBに 登 録 処 理 を 行 うPHPプログラムのファイルを regist_user.php という 名 前 で 作 業 フォルダに 作 成 する. 手 順 3: 前 回 の 作 業 フォルダ( PHP04 )から 利 用 者 検 索 結 果 一 覧 を 表 示 する PHPプログ ラム( search_user.php )を, 今 回 の 作 業 フォルダ( PHP05 )にコピーする( 前 回 作 成 して いない 場 合 はこの 資 料 の 前 回 課 題 2 解 答 を 参 照 し 作 成 ). 手 順 4: 手 順 3のPHPプログラム( search_user.php )の 変 更 し,フォームデータ( keyword) が 無 い 場 合 でもエラーが 表 示 されないようにする. 手 順 5:Webブラウザで 手 順 1で 作 成 したページにアクセスする. http://localhost/php05/input_regist_user.html 手 順 6: 以 下 の 利 用 者 情 報 を 入 力 し, 登 録 ボタンを 押 す. 利 用 者 番 号 : U000021 氏 名 : ( 自 分 の 氏 名 ) 住 所 : ( 自 分 の 住 所 ) 電 話 番 号 : ( 自 分 の 電 話 番 号 ) 生 年 月 日 : ( 自 分 の 生 年 月 日 ) 登 録 年 月 日 : ( 作 業 時 の 年 月 日 ) 手 順 7: 登 録 処 理 ページから 利 用 者 一 覧 へ のリンクへ 飛 び, 新 規 登 録 した 利 用 者 情 報 が 一 覧 にあることを 確 認 する.

提 出 課 題 課 題 1( 提 出 課 題 ) : 利 用 者 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 されたデータで 利 用 者 (user)テーブルにレコードを 新 規 登 録 するWebペー ジを 作 りましょう. U000021 user_id 情 報 太 郎 name 千 葉 県 千 葉 市 若 葉 区 御 成 台 4-1 043-236-XXXX address tel input_regist_user.html 1988/4/1 2015/7/19 birth reg_date regist_user.php search_user.php

提 出 課 題 課 題 2( 提 出 課 題 ): 書 籍 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 され たデータで 書 籍 テーブルにレコードを 新 規 登 録 するWebページを 作 りましょ う.ただし, 入 力 されていないデータがあった 場 合 はDBに 登 録 せずに, 警 告 のメッセージを 表 示 します. データ 形 式 のチェックは 行 いません ( 例 : 価 格 に あああ を 入 力 など) 手 順 1: 実 習 3で 作 成 した 書 籍 情 報 入 の力 Webページ ( input_regist_book.html )をコピーし,ファイル input_regist_book2.html 名 を に 変 更 する. 手 順 2: 手 順 1のHTMLファイル( input_regist_book2.html )を 変 更 する (regist_book2.phpに 飛 ぶように). 手 順 3: 実 習 3で 作 成 した 登 録 処 理 PHPプログラム( regist_book.php )をコ の ピーし,ファイル 名 regist_book2.php に を 変 更 する. 手 順 4: 手 順 3のPHPプログラムを 変 更 する( 各 項 目 のデータが 入 力 されていな い 場 合 はそれぞれ 警 告 メッセージを 表 示 する.その 場 合 DBへの は 登 録 はしな い) 手 順 5:Webブラウザで 手 順 2で 作 成 したページにアクセスする. http://localhost/php05/input_regist_book2.html 手 順 6: 書 籍 情 報 の 入 力 で,( 適 当 に) 入 力 しない 項 目 がある 状 態 で 登 録 ボタ ンを 押 し, 警 告 メッセージが 表 示 されることを 確 認 する.

提 出 課 題 課 題 2( 提 出 課 題 ): 書 籍 の 情 報 を 入 力 し 登 録 ボタンを 押 すと, 入 力 され たデータで 書 籍 テーブルにレコードを 新 規 登 録 するWebページを 作 りましょ う.ただし, 入 力 されていないデータがあった 場 DBに 合 は登 録 せずに, 警 告 のメッセージを 表 示 します. データ 形 式 のチェックは 行 いません ( 例 : 価 格 に あああ を 入 力 など) input_regist_book2.php regist_book2.php