まずは、下記の通り配列をサブミットするようにしました。
HTML
1<form action="update.php" method="post"> 2 <input type="hidden" name="id[]" value="<?= $row['id']; ?>"> 3 <input type="text" name="data_A[]" value="<?= $row['data_A']; ?>"> 4 <input type="text" name="data_B[]" value="<?= $row['data_B']; ?>"> 5 <input type="text" name="data_C[]" value="<?= $row['data_C']; ?>"> 6 <input type="submit" value="保存"> 7</form>
データベースに登録済みのものを、引っ張ってきて表示し、修正したい箇所を修正してサブミットさせて、一気に修正をかけるという感じにしました。
今回は1行データのようになっていますが、実際はwhileでループさせたりして、データとしては複数行あります。
print-r('$_POST');
にて、データが配列でちゃんと送られたのは確認しました。
そのデータを登録したいのですが、、、、
PHP
1<?php 2 $dbh = new PDO(DSN, DB_USER, DB_PASSWORD); 3 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 4 $stmt = $dbh->prepare( 5 "UPDATE test SET data_A = ?, data_B = ?, data_C = ? WHERE id = ?"); 6 $stmt->bindParam(1, $data_A, PDO::PARAM_STR); 7 $stmt->bindParam(2, $data_B, PDO::PARAM_STR); 8 $stmt->bindParam(3, $data_C, PDO::PARAM_STR); 9 $stmt->bindParam(4, $id, PDO::PARAM_STR); 10 $stmt->execute(); 11?>
本当はカラムにnameとかありますが、その辺りは修正不可としておいて、data_A,B,Cだけ必要ならばな感じにして、idでWHEREすればいいのかと思って上記のような感じにしてみました。
※いろいろ細かいところがあるでしょうが、、、とりあえず、、、
データの受け取り方?なんですが、、、
最初のHTMLでは配列で値を送信しているので、値を配列で受け取ってって感じなのでしょうが、その辺りのやり方が、未だイマイチでして、、、、
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/02/10 08:25