人に聞けない痔の悩み、これでスッキリ >>

度々お世話になります。
画像が上がっていなかったので、再度質問させて頂きます。

簡単に言うと、画像のように顧客テーブルのレコードを絞り込んだ結果を1クリックで売上テーブルに挿入したいと考えております。

検索結果をforeachでループさせて表示しています。
ボタンのINPUTタグを組み込んだのですが、クリックすると、検索結果全てが挿入されます。

どうすればいいのかお知恵をお貸し下さい。
毎度毎度すいません。

ざっくりですが、ソースはこんなかんじです。

$kensaku = $db->prepare('SELECT * FROM T_kokyaku WHERE name LIKE :ken');
$kensaku -> execute(array(':ken' => 検索ボックスのキー));

検索結果の表示

while($kekka = $kensaku ->fetch(PDO::FETCH_ASSOC)){

print $kekka['name'];
print '<form action="" method ="POST"><input type="submit" name="submit1" value="売上登録"></form>
if(isset($_POST['submit1'])){
INSERT分
}

「任意のレコード値を別レコードに挿入」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (2件)

検索結果を表示するときに



<form action="reg.php" method="post">
<input type="hidden" name="kokyaku_id" value="<?=$row['kokyaku_id'] ?>">
<input type="submit" value="売上登録">
</form>

っていう形で1レコード毎に作ればいいんじゃない?
そうすれば出力されるHTMLは
<form action="reg.php" method="post">
<input type="hidden" name="kokyaku_id" value="1">
<input type="submit" value="売上登録">
</form>

<form action="reg.php" method="post">
<input type="hidden" name="kokyaku_id" value="2">
<input type="submit" value="売上登録">
</form>

とかなるでしょ。そうすればそれぞれのボタンをクリックすればkokyaku_idはそれぞれの値が飛ぶ。

reg.phpではそのkokyaku_idを取得してその値でselect insertすればいいんじゃない?
    • good
    • 0
この回答へのお礼

ありがとうございます。
教えて頂いた内容でうまくいきました。

お手数おかけしました。

お礼日時:2013/05/24 19:27

ごめん、ここの仕様の問題だから仕方ないんだけど、画像の中に小さい字があっても読めないんだ。



INSERTを実行するところが問題だろうにそこのロジックを端折っちゃアドバイスのしようがないよ。

普通はキーとなる項目を登録用のスクリプトに送信してそのキーで顧客テーブルから対象のレコードを取得して売り上げテーブルにインサートかけると思うけど。

再取得しないなら全項目をhiddenに持つとかしないとだよ。
まあカンマ区切りで持ったりしてもいいけど。
そんなことするなら、INSERT時にもう一度取得したほうがいいと思うよ。

面倒ってのもあるし、画面開いたまま他の人が顧客テーブル書き換えたら古いデータで上書きされることになるし。
そうなってくるとデータのロックしたりとか考えないといけない。
(どっちにしてもWebだとデータのロックを考慮しないといけない場合が多い。絶対一人しか実行しません。ってなら別だけど)

この回答への補足

ご回答ありがとうございます。

おっしゃる通りにhiddenで全項目を隠して行う予定でしたが、面倒ですね。
スクリプトファイルにkokyaku_idを飛ばしたいと思っていますが、$kekka['kokyaku_id']だと全ての値がPOSTされてしまうので、どうすればいいのでしょうか?

補足日時:2013/05/24 10:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング