• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL 5 PHP 5 データの受け渡しについて 困ってます。。)

MySQL 5 PHP 5 データの受け渡しについて

このQ&Aのポイント
  • MySQL 5 PHP 5 データの受け渡しについての質問
  • プロダクトテーブルからデータを読み込み表示しているが、受注テーブルに書き込む際に問題が発生している
  • whileループにより変数に代入する際、常に最後のデータが格納されてしまう

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

上記のソースだけでは全体像がつかめないので、見た印象だけ。 ・書き込みの処理の部分が無いので、書き込み処理での問題点が不明 ・product_idのフィールド(の名前)が1つしか無いので、product_idの値は一番最後に読み込んだものだけが(formのmethodがpostの場合は)POSTされると思う

masako1224
質問者

補足

回答有難う御座います! カキコミ処理は。。。 //---------------------------------------- // ■ POSTされたとき //---------------------------------------- if ($_SERVER["REQUEST_METHOD"]=="POST"){ //-------------------------------- // □ 新規追加 //-------------------------------- if (isset($_POST["submit_add"])){ //-------------------------------- // □ POSTされたデータを取得 //-------------------------------- //新規追加 $no = htmlspecialchars($_POST["usr_no"], ENT_QUOTES); //追加会員番号 $new_order_id = htmlspecialchars($_POST["new_order_id"], ENT_QUOTES); //追加注文番号 $new_product_id = htmlspecialchars($_POST["product_id"], ENT_QUOTES); //追加商品番号 $new_product_name = htmlspecialchars($_POST["new_product_name"][$product_id], ENT_QUOTES); //追加商品名 $new_product_price = htmlspecialchars($_POST["new_product_price"][$product_id], ENT_QUOTES); //追加商品価格 $new_order_date = htmlspecialchars($_POST["new_use_date"][$product_id], ENT_QUOTES); //追加ご利用日 $new_dates = htmlspecialchars($_POST["new_use_date"][$product_id], ENT_QUOTES); //追加ご利用時間 $new_remarks = htmlspecialchars($_POST["remarks"][$product_id], ENT_QUOTES); //追加備考内容 $new_order_date = htmlspecialchars($_POST["order_date"][$product_id], ENT_QUOTES); //追加注文日時 //-------------------------------- // □ SQL文作成 //-------------------------------- if ($error==""){ $sql = "INSERT INTO order_details VALUES($usr_no,'$new_order_id','$new_product_id','$new_product_name','$new_product_price','$new_use_date','$new_use_time','$new_remarks',now())"; $mysql->query($sql) ※エラー処理等は省きます 私も少し考えてみますがもし時間があったら教えて戴けると幸いです。 宜しくお願いします。

その他の回答 (1)

回答No.2

POSTデータを取り出してる部分の「$product_id」がどこから来てる値なのか分からないのですが、これは > $new_product_id = htmlspecialchars($_POST["product_id"], ENT_QUOTES);//追加商品番号 で取り出してる「$new_product_id」では無いのですか? で、この「$new_product_id」は先にも書いたとおりPOST元では一番最後に読み込んだデータの値しか入ってこないので、これを用いて他のPOSTデータをインデックスすると、どの注文ボタンを押しても一番最後に読み込んだデータ値しか保存されないことになります。 したがって、POSTデータのproduct_idの値を用いてその他のPOSTデータをインデックスして取り出すなら、注文フォームの方で押された注文ボタンに対応するproduct_idをちゃんとPOSTするようにする必要があると思います。 注文の選択をsubmitボタンで行うならvalueの値をそれぞれ変えて区別するとか、あるいはボタンは1つにしてラジオボタンとか選択メニューを使って選択を行うとかが妥当かと思います。 あるいはこのままでproduct_idをボタンで選択された商品の値に変えるにはJavascript等を用いる必要があるかと……