複数レコードの更新について

このQ&Aのポイント
  • select文でDBから条件指定された複数レコードが表示され、それぞれに個数を入力出来る1フォームを作成しました。
  • 個数入力フォームをPOSTでDBへ更新する方法を検索しましたが、受け取った内容がarrayとなってしまいます。
  • $_POST['qty']と記述した受け側の記述方法について教えていただけないでしょうか?
回答を見る
  • ベストアンサー

複数レコードの更新について

よろしくお願いします。 select文でDBから条件指定された複数レコードが表示され、 それぞれに個数を入力出来る1フォームを作成しました。以下のような感じです。 ------------------------------------- brand qty ダイヤ ( ) サファイヤ ( ) ---------------------------- ( )が個数入力出来るところです。これをPOSTでDBへ更新したいのですが、 <input type=text name=qty[]>のように[]を付けて渡せば出来るような 内容を検索で見つけたのですが、どうしても受けた内容が array arrayとなってしまいます。 受け側はどのように記述すればよろしいですか? ちなみに$qty=$_POST['qty'];と記述しました。 どうかよろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

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

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

$_POST["qty"]の値は、配列になっているので、 $_POST["qty"][0] -> ダイヤの個数 $_POST["qty"][1] -> サファイヤの個数 となります。 for($i=0 ; $i<count($_POST["qty"]) ; $i++){ echo $POST["qty"][$i] . "\n"; } などで、内容を確認できると思います。

hajimete-san
質問者

お礼

donne-moi様、早速の回答ありがとうございます。 無事出来ました、助かりました。 これからもっと勉強したいと思います。 本当にありがとうございます。

その他の回答 (1)

回答No.2

さきほど回答したうちの echo $POST["qty"][$i] . "\n"; は、 echo $_POST["qty"][$i] . "\n"; が正しいです。

関連するQ&A

  • 1フォームで複数レコードの登録

    こんにちは。初心者です。 PHP(4)とMYSQL(4.0.20)でデータの登録について お教え頂きたいことがございます。 1つの入力フォームで入力したものを 複数レコードに登録したいと思っております。 社員番号  時間外  勤務日数 (   ) (  ) (  ) (   ) (  ) (  ) (   ) (  ) (  ) (   ) (  ) (  ) (   ) (  ) (  ) ( )がINPUTの枠になります。 これを1行を1レコードとしてDBに登録していきたいと 思っております。 こういったことは可能でしょうか? 参考になる本やサイトがあれば、お教えいただければ 幸いです。 申し訳ありませんが、お教え頂きますよう お願い致します。

    • ベストアンサー
    • PHP
  • PHPでMySQLのレコードを削除したい

    現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。 (mysql_query() を初めて学習中です。) 例にならってスクリプトを書いてみたのですが、MySQL内にあるレコードを削除するためのスクリプトがうまく作動しません。 (SELECT, INSERT, SEARCH は正常に作動します。DELETEだけがなぜかうまくいきません。) ApacheとMySQLは起動しています。 考えられる原因をおしえていただけませんでしょうか。よろしくおねがいいたします。 ソースコードは下記のとおりです。 ★HTML(トップページ) //メッセージ表示のスクリプトを呼び出すフォーム <form method="post" action="kantan_select.php"> メッセージを表示します<br> <input type="submit" value="メッセージ表示"> </form> //挿入のスクリプトを呼び出すフォーム <form method="post" action="kantan_insert.php"> 名前を入力してください<input type="text" name="a1"><br> メッセージを入力してください<input type="text" name="a2" size=150><br> <input type="submit" value="送信"> </form> //☆☆☆削除のスクリプトを呼び出すフォーム☆☆☆ <form mothod="post" action="kantan_delete.php"> 削除番号<input type="text" name="b1"><br> <input type="submit" value="削除番号送信"> </form> //検索のスクリプトを呼び出すフォーム <form method="post" action="kantan_search.php"> 検索キーワード<input type="text" name="c1"><br> <input type="submit" value="検索開始"> </form> ★レコード削除のPHPスクリプト <?php $s=mysql_connect("localhost","root","パスワード") or die("接続失敗"); print "接続しました<br>"; mysql_select_db("db1"); $b1_d=$_POST["b1"]; mysql_query("delete from tbk where bang=$b1_d") ; $re=mysql_query("select * from tbk order by bang"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print ":"; print $kekka[1]; print ":"; print $kekka[2]; print "<br>"; } mysql_close($s); print "<br><a href='kantan.html'>メニューに戻る</a>" ?> <環境> Windows 7 XAMPP導入するための付属CD-ROMの内容  ・Apache(HTTPD2.2.6 + Openssl0.9.8e)   ・MySQL(5.0.45)  ・PHP(5.2.4)  ・PHP(4.4.7)  ・phpMyAdmin(2.11.1)  ・Zend Optimizer

    • 締切済み
    • PHP
  • php データベース更新

    番号 int プライマリーキー 氏名  varchar 住所 varchar 一覧画面に修正というボタンをつくりボタンクリックすると入っているデータがテキストボックスで表示され入力できるようにした。 番号は主キーなので表示のみにして編集できないようにした ソース GETで番号をとりupdate2.phpにわたす update.php <?php $ID = htmlspecialchars($_GET['番号']); $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("SELECT * FROM tbl_test WHERE 番号=?"); $st->execute(array($ID)); $row = $st->fetch(); $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); ?> <form action="update2.php" method="post"> 番号<br> <?php echo $ID ?><br> 氏名<br> <input type="text" SIZE = "50" NAME="NAME" value="<?php echo $NAME ?>"><br> 住所<br> <input type="text" SIZE = "130"NAME="ADDR" value="<?php echo $ADDR ?>"><br> <input type="submit"> </form> アップデートphpは下記のとおり update2.php <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?"); $st->execute(array($_POST['ID'],$_POST['NAME'], $_POST['ADDR'])); ?> レコードを修正しました。 だかupdate2.phpでエラ-がおきて先に進めません

    • ベストアンサー
    • PHP
  • レコードからの読み込み

    reco.txtを読み込み、キーボードから入力した任意の1文字が書くレコードに含まれる個数を求めたいんですが・・・・・。 ちなみにreco.txtの中身は以下です。 ---------------------------------------------------- 10 HaniaNikjlalhhdgfmnnhgfnDliCckcehcngEilf nakffgaChifleiGklkCljekcHKaaniiilMBabdikn aglbjmHHBincaklmnDDDeaAkemdnnlncmaEhmfal cdcihblkenhgjajmbffcmababcdelckghjeecfab hdndCChefghdhhjbhaihniamEEjfgjdfBBBancli kbFBldbgcabdikfHNinemFMBEgfghjdfKKdhmccf cdcdhkiijiaHjdganijnglfidaiCNJGDIBNBNHDe hclbnbfgjmhbndjkibmjkknkjmaibfmnllilijhm MGDLDMKGIFFNJMaFemdajbnmeCFCHNJMJEfaKklb gaGGknljDNifbhalhcdJJDJfgcgaliiagelfkagf ------------------------------------------------------- 実行画面は以下です ------------------------------------------------------- 検索文字?a 指定された文字=a >>>指定された文字を求めた結果表示  レコード番号,個数,レコード内容内 ==> 1 3:HaniaNikjlalhhdgfmnnhgfnDliCckcehcngEilf ==> 2 4:nakffgaChifleiGklkCljekcHKaaniiilMBabdikn ==> 3 5:aglbjmHHBincaklmnDDDeaAkemdnnlncmaEhmfal ==> 4 4:cdcihblkenhgjajmbffcmababcdelckghjeecfab ==> 5 3:hdndCChefghdhhjbhaihniamEEjfgjdfBBBancli ==> 6 1:kbFBldbgcabdikfHNinemFMBEgfghjdfKKdhmccf ==> 7 3:cdcdhkiijiaHjdganijnglfidaiCNJGDIBNBNHDe ==> 8 1:hclbnbfgjmhbndjkibmjkknkjmaibfmnllilijhm ==> 9 3:MGDLDMKGIFFNJMaFemdajbnmeCFCHNJMJEfaKklb ==>10 5:gaGGknljDNifbhalhcdJJDJfgcgaliiagelfkagf >>>求めた個数の小さい順に並べ替えた結果表示  レコード番号,個数,レコード内容        ・        ・        ・        ・

  • フォーム内で複数のレコードを表示

    アクセスで、表形式のサブフォーム(S_フォーム)を作成し、データを入力するとテーブル(T_明細)に追加されるようになっています。これをサブフォームのテキストボックスに入力するのではなく、別のクエリ(Q_クエリ)にあるデータを実行ボタンを押すことでサブフォームのテキストボックスに表示するようにし、テーブルのレコード(何件もある)を入力させていきたいと思っています。下記のようにコードをまず作成してみました。 Public Db As Database Public rs As Recordset Private Sub 実行_Click() Dim Temp_count As Integer Dim I As Integer Set Db = CurrentDb Set rs = Db.OpenRecordset("Q_クエリ", dbOpenDynaset) Temp_count = DCount("ID", "Q_クエリ") For I = 1 To Temp_count If IsNull(rs![氏名]) = False Then 氏名テキスト = rs![氏名] If IsNull(rs![住所]) = False Then 住所テキスト = rs![住所] rs.MoveNext Next I End Sub すると、ループした内容が全て同じテキストボックスに上書きされていき、結局1つのレコードしか追加できない状態です。入力操作でENTERしていくとサブフォーム内で複数のレコードが入力出来るように、出来ないでしょうか??良い記述があれば教えてください。お願い致します。

  • 複数formの使用について

    お世話になります。 複数のFORMを入れ子で使用する方法はありますでしょうか? 下記の記述だと外側のFORMが無効になってしまいます。 表示の順は以下のようにしたいです。 aaa.phpへPOST変数でデータを受け渡して使用します。 <form method="post" name="test1" action="aaa.php"> <input type="text" name="text01" id="textA" value="10"> <input type="text" name="text02 id="textA" value="20"> <input type="text" name="text03" id="textA" value="30"> (上のinputタグ数は動的に変わります) <form method="POST" name="test2" action="bbb.php"> <select name="select"> <option>selectA</option> <option>selectB</option> <option>selectC</option> <input type="submit" name ="read" value="読込"> </select> </form> <input type="submit" value="保存" > </form> 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPのsubmitボタンが複数ある場合

    PHPのsubmitボタンが複数ある場合 PHPにて会計システムを開発しているのですが、計算ボタンと、更新してDBに追加するためのボタンとが混在している場合、 $_POST等で押されたボタンの処理を分けることは可能なのでしょうか?下の例は、 name="calculation"が押された場合は、val1とval2の値を計算し、totalへ値を入れます。 name="update"が押された場合は、それぞれのフォームの値をDBに更新をかけます。 <?php <form action="****.php" method="POST"> <input type="text" name="val1" value="20"/> <input type="text" name="val2" value="30"/> <input type="text" name="total" value="50"/> <input type="submit" name="calculation"/> <input type="submit" name="update"/> </form> ?> お分かりになる方、ご教授お願いいたします。

    • 締切済み
    • PHP
  • 任意のレコード値を別レコードに挿入

    度々お世話になります。 画像が上がっていなかったので、再度質問させて頂きます。 簡単に言うと、画像のように顧客テーブルのレコードを絞り込んだ結果を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分 }

    • ベストアンサー
    • PHP
  • PHPの複数条件検索フォーム

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1134440526 の回答者の方のコードを参考にしたのですが、下記の通りにすると Parse error: syntax error, unexpected '{' in C:\Program Files\Apache\Apache24\htdocs\sample\kensaku20.php on line 19 と出ます、カッコの数がおかしいのでしょうか? 19行目前後を見てもおかしな所はないと思われるのです(秀丸を使っていてカーソルを合わせると色が変わる部分を見ました) やりたいこととしてはid名か商品名のどちらか・或いは両方とも入力したらDBより検索、表示させる事です。 HTML部 <form action ="http://localhost/sample/kensaku20.php" method="post"> id名:<input type="text" name="id"> 商品名:<input type="text" name="name"> <input type="submit" name="exec" value="検索"> </form> php部 中略 $ary_whr = array(); $ary_dat = array(); if (!empty($_POST['exec'])) __{ $ary_whr[] = 'name LIKE ? '; $ary_dat[] = '%'.$_POST['exec'].'%';} if (!empty($_POST['id'])) __{ $ary_whr[] = 'id LIKE ? '; $ary_dat[] = '%'.$_POST['id'].'%';} if (!empty($_POST['name'])) __{ $ary_whr[] = 'name LIKE ? '; $ary_dat[] = '%'.$_POST['name'].'%';} $where = ' WHERE ' . implode(' AND ', $ary_whr); 中略

    • ベストアンサー
    • PHP
  • オブジェクト数の取得

    以下のようなテキストボックスがあります。 <input type="text" name="price1[0]"> <input type="text" name="price2[0]"> <input type="text" name="price3[0]"> <input type="text" name="price1[1]"> <input type="text" name="price2[1]"> <input type="text" name="price3[1]"> ・・・・ 添え字は[0]、[1]、[2]・・・となり、 データにより可変となっています。 入力するのは金額なので、数値かどうかのチェックを行いたいのですが、テキストフィールドの個数をどのように取得したらよいかがわかりません。 他のオブジェクトとのからみで、name="price1[]"のように変更することはできません。 (このようにすると、オブジェクト数は取得できるのですが) 上記記述のオブジェクト数の取得方法がわかる方、教えてください。テキストは金額のみなので、テキストフィールド全ての個数でもよいですし、price1[]、price2[]、price3[]各々の個数でもどちらでもよいです。 よろしくお願いいたします。

専門家に質問してみよう