「PHPとMySQLを使いGETメソッドで受け取ったデータを取得&表示」の編集履歴(バックアップ)一覧はこちら

PHPとMySQLを使いGETメソッドで受け取ったデータを取得&表示」(2015/06/13 (土) 17:25:27) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

前回記事[[PHPとMySQLでデータの取得]]からリンクで飛んできたページを作っていきたいと思います。6月4日記事 #contents ~ ~ ---- ~ *GETメソッドの注意点 GETメソッドはqueryの内容がURLに表示されているため、適切に処理する必要があります。 *クエリ条件 idでかつ公開中(2)のデータの場合のみ表示させ、そうでない場合は、「この記事はありません。」的なエラー処理をしていきたいと思います。 すると mysql> SELECT * FROM information WHERE id = '受け取ったID番号' AND status = '2'; というようなクエリになると思います。 *コード 受け取った値が数値のもののみを許可する必要があります。 fillter関数を使ってもよいですし、PDOのbindParamで、数値のチェックをしてもいいと思います。 関数の勉強もかねて両方行っていきましょうか?あまり意味ないとは思いますが・・・ ~ &u(){ファイル名(information.php)} <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>更新情報</title> </head> <body> <?php $dsn = 'mysql:dbname=データベース名;host=localhost;port=3306'; $user = 'ユーザ名'; $password = 'ユーザパスワード'; try{ //成功時対応 $dbh = new PDO($dsn, $user, $password); $id = $_GET['id']; $filter_id = filter_var($id ,FILTER_SANITIZE_NUMBER_INT,FILTER_NULL_ON_FAILURE); //echo $filter_id; $stmt = $dbh -> prepare("SELECT * FROM information WHERE id = :id AND status = '2'"); $stmt->bindParam(':id', $filter_id, PDO::PARAM_INT); $stmt->execute();//実行 $result = $stmt->fetch(); echo '<dl><dt>記事ID</dt><dd>'; echo htmlspecialchars($result['id']).'<br>'; echo '</dd><dt>日付</dt><dd>'; echo htmlspecialchars($result['info_date']).'<br>'; echo '</dd><dt>投稿種類</dt><dd>'; switch($result['type']){ case 1: echo 'ニュース'; break; case 2: echo '更新情報'; break; case 3: echo '入荷情報'; break; case 4: echo 'その他'; break; default : echo 'その他'; } echo '</dd><dt>タイトル</dt><dd>'; echo htmlspecialchars($result['title']).'<br>'; echo '</dd><dt>内容</dt><dd>'; echo nl2br(htmlspecialchars($result['info_text'])).'<br>'; echo '</dd><dt>URL</dt><dd>'; echo htmlspecialchars($result['url']).'<br>'; echo '</dd></dl>'; echo '<a href="index.php">ホームに戻る</a>'; }catch (PDOException $e){//失敗時対応 print('Connection failed:'.$e->getMessage()); die(); } $dbh = null; ?> </body> </html>
前回記事[[PHPとMySQLでデータの取得]]からリンクで飛んできたページを作っていきたいと思います。6月4日記事 #contents ~ ~ ---- ~ *GETメソッドの注意点 GETメソッドはqueryの内容がURLに表示されているため、適切に処理する必要があります。 *クエリ条件 idでかつ公開中(2)のデータの場合のみ表示させ、そうでない場合は、「この記事はありません。」的なエラー処理をしていきたいと思います。 すると mysql> SELECT * FROM information WHERE id = '受け取ったID番号' AND status = '2'; というようなクエリになると思います。 *コード 受け取った値が数値のもののみを許可する必要があります。 fillter関数を使ってもよいですし、PDOのbindParamで、数値のチェックをしてもいいと思います。 関数の勉強もかねて両方行っていきましょうか?あまり意味ないとは思いますが・・・ ~ &u(){ファイル名(information.php)} <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>更新情報</title> </head> <body> <?php $dsn = 'mysql:dbname=データベース名;host=localhost;port=3306'; $user = 'ユーザ名'; $password = 'ユーザパスワード'; try{ //成功時対応 $dbh = new PDO($dsn, $user, $password); $id = $_GET['id']; $filter_id = filter_var($id ,FILTER_SANITIZE_NUMBER_INT,FILTER_NULL_ON_FAILURE); //echo $filter_id; $stmt = $dbh -> prepare("SELECT * FROM information WHERE id = :id AND status = '2'"); $stmt->bindParam(':id', $filter_id, PDO::PARAM_INT); $stmt->execute();//実行 $result = $stmt->fetch(); echo '<dl><dt>記事ID</dt><dd>'; echo htmlspecialchars($result['id']).'<br>'; echo '</dd><dt>日付</dt><dd>'; echo htmlspecialchars($result['info_date']).'<br>'; echo '</dd><dt>投稿種類</dt><dd>'; switch($result['type']){ case 1: echo 'ニュース'; break; case 2: echo '更新情報'; break; case 3: echo '入荷情報'; break; case 4: echo 'その他'; break; default : echo 'その他'; } echo '</dd><dt>タイトル</dt><dd>'; echo htmlspecialchars($result['title']).'<br>'; echo '</dd><dt>内容</dt><dd>'; echo nl2br(htmlspecialchars($result['info_text'])).'<br>'; echo '</dd><dt>URL</dt><dd>'; echo htmlspecialchars($result['url']).'<br>'; echo '</dd></dl>'; echo '<a href="index.php">ホームに戻る</a>'; }catch (PDOException $e){//失敗時対応 print('Connection failed:'.$e->getMessage()); die(); } $dbh = null; ?> </body> </html> ~ ~ 次ページは[[PHPとMySQLを使って更新情報の再編集ページを作る]]です。

表示オプション

横に並べて表示:
変化行の前後のみ表示: