質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

500閲覧

phpで作る掲示板でupdateを行いたい

yamayamasou

総合スコア10

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/04/01 23:58

初投稿です。書き方に不備等がありましたら、申し訳ございません。
分からない点がありましたら、教えて頂けたらありがたいです。
よろしくお願い致します。

phpで作る掲示板でupdateを行いたい

phpで掲示板を作っています。
indexページの投稿から、更新ボタンを押して更新ページにいき更新をしようとしています。
しかし、更新ボタンを押しても該当のIDに飛ばずに更新ができません。。。

問題箇所はupdateの

SQL文を実行する準備
値のバインド
プリペアドステートメントの実行
データの取得

辺りだと思うのですが、なかなか解決しません。

ご教示の程よろしくお願いします。

該当のソースコード

index

1 echo('<p>id:'.$id.'</p>'); 2 echo('<p>投稿者:'.$name.'</p>'); 3 echo('<p>内容:</p>'); 4 echo('<p>'.$post.'</p>'); 5 echo('<form action="update2.html" method="post">'); 6 echo('<input type="submit" value="変更する">'); 7 echo('<input type="hidden" name="id" value='.$id.'>'); 8 echo('</form>'); 9 echo('<form action="delete.html" method="post">'); 10 echo('<input type="submit" value="削除する">'); 11 echo('<input type="hidden" name="id" value='.$id.'>'); 12 echo('</form>');

イメージ説明

update

1<?php 2 3header("Content-type: text/html; charset=utf-8"); 4 5require_once("db_connect.php"); 6$dbh = db_connect(); 7 8if(empty($_POST)) { 9 echo "<a href='index.html'>index.html</a>←こちらのページからどうぞ"; 10 exit(); 11} 12 13//プリペアドステートメント 14$statement = $dbh->prepare("SELECT (id,name,post) FROM forum WHERE id = ?"); 15//プレースホルダへ実際の値を設定する 16$statement->bindValue(':id', $id, PDO::PARAM_STR); 17$statement->bindValue(':name', $name, PDO::PARAM_STR); 18$statement->bindValue(':post', $post, PDO::PARAM_STR); 19//クエリ実行 20$statement->execute(); 21/* バインドする */ 22$row = $statement->fetch(); 23?> 24 25<!DOCTYPE html> 26<html> 27<head> 28<title>変更画面</title> 29</head> 30<body> 31<h1>変更画面</h1> 32 33 <?php 34 35 $id = $row['id']; 36 $name = $row['name']; 37 $post = $row['post']; 38 $post = nl2br($post); 39 40 echo('<p>変更して下さい。</p>'); 41 echo('<form action="update3.html" method="post">'); 42 echo('名前を入力:<input type="text" name="name" value='.$name.'><br><br>'); 43 echo('<textarea name="post" rows="8" cols="40">'); 44 echo($post); 45 echo('</textarea><br><br>'); 46 echo('<input type="hidden" name="id" value='.$id.'>'); 47 echo('<input type="submit" value="変更する">'); 48 echo('</form>'); 49 50 ?> 51 52</body> 53</html> 54

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/02 00:18

.htmlでphpが扱えるように設定されているのでしたらその部分は補足で記載しておいてください。 あと、サーバーの種類やバージョン、phpのバージョン DB定義など
guest

回答3

0

PHP

1var_dump($id); 2$statement->bindValue(':id', $id, PDO::PARAM_STR);

とすると、idが取得されていないことがわかるはずです。
$_POSTからidを取得する必要があります

投稿2019/04/02 00:12

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ざっと見た感じ、必要な処理が何もできてない。
ネットの情報のツギハギで作ったんでしょうねぇ。。。

初学者向けの学習本等で基本から体系的に確認すると良いです。

一応、参考程度に本件が解決できそうな部分的な情報は提示しておきますが、ちゃんとしたほうが学習の近道です。

【PHP初心者向け】セキュアな掲示板を最小構成から作る
PHP で MySQL 接続時に必要な知識(最小限版)

投稿2019/04/02 00:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

$idは↓な感じでいけると思いますが、

php

1$id = filter_input(INPUT_POST, 'id');

$nameと$postについてはformに設定されていないので、まずフォームを作るところから。

投稿2019/04/02 02:57

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問