- ベストアンサー
任意のレコード値を別レコードに挿入
- 顧客テーブルから絞り込まれたレコードを売上テーブルに挿入する方法について教えてください。
- 現在、検索結果をループで表示しており、ボタンをクリックするとすべての検索結果が挿入されます。
- どのようにすれば絞り込まれたレコードのみを挿入できるのでしょうか?
- みんなの回答 (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すればいいんじゃない?
その他の回答 (1)
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
ごめん、ここの仕様の問題だから仕方ないんだけど、画像の中に小さい字があっても読めないんだ。 INSERTを実行するところが問題だろうにそこのロジックを端折っちゃアドバイスのしようがないよ。 普通はキーとなる項目を登録用のスクリプトに送信してそのキーで顧客テーブルから対象のレコードを取得して売り上げテーブルにインサートかけると思うけど。 再取得しないなら全項目をhiddenに持つとかしないとだよ。 まあカンマ区切りで持ったりしてもいいけど。 そんなことするなら、INSERT時にもう一度取得したほうがいいと思うよ。 面倒ってのもあるし、画面開いたまま他の人が顧客テーブル書き換えたら古いデータで上書きされることになるし。 そうなってくるとデータのロックしたりとか考えないといけない。 (どっちにしてもWebだとデータのロックを考慮しないといけない場合が多い。絶対一人しか実行しません。ってなら別だけど)
補足
ご回答ありがとうございます。 おっしゃる通りにhiddenで全項目を隠して行う予定でしたが、面倒ですね。 スクリプトファイルにkokyaku_idを飛ばしたいと思っていますが、$kekka['kokyaku_id']だと全ての値がPOSTされてしまうので、どうすればいいのでしょうか?
お礼
ありがとうございます。 教えて頂いた内容でうまくいきました。 お手数おかけしました。