• 締切済み

複数行に対しての更新処理方法

失礼いたします。 現在、ランキングの表示順序を変更する画面を作成しようとしています。 Table:RANK ID  NAME  NO ----------------- 1   AAAA 5 2 BBBB 2 3 CCCC 1 4 DDDD 6 5 EEEE 6 FFFF TableにはIDをキーにして、名称(NAME)と表示順番(NO)があり、 表示画面上では表示順番(NO)が入力フォームになっています。 mysql_fetch_rowでSQLでとって来た値を配列$rkにとり、 上記のTable内容のNAMEとNOをリスト表示するまではでき たのですが、次に表示順番(NO)を更新して保存する方法が わからず困っています。 1レコードに対してなら UPDATE RANK SET NO=*** WHERE ID=** なんかでできるのではと思うのですが、 一度保存ボタンを押したら各IDに対しそのNOの値が保存するように したいので、各IDに対しての保存する複数行のUPDATEはどうしたら いいでしょうか。 わかりづらい点あると思いますがコメントお願いします。

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

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

今の情報からだと単純にform飛ばしたデータをうけとって UPDATEのSQLを複数回発行するのがよいと思いますが。 表示順番が入力フォームになっているというのは 表示順番というフィールドに手で入力できて、それを SQLに登録するということ? HTMLで簡単に例を挙げてもらったほうが指摘しやすい と思いますよ。

getamato
質問者

お礼

ありがとうございます。 今やっている所がおわったらもう一度この問題にかかりたいと思います。 その際はよろしくお願いします。

getamato
質問者

補足

ありがとうございます。 やりたい事はご指摘いただいたとおりです。 <FORM method="post" name="RANK" action="num.php"OnSubmit=" return ent()"> <TABLE width=800 border=1> <TR> <TH width=20%>NAME</TH> <TH width=20%>No</TH> </TR> <TR> <TDwidth=20%>AAAAA</TD> <TDwidth=20%> <INPUT type=text name=Ln size=10 value=''> </TD> </TR> <TR> <TD width=20%>BBBBB</TD> <TD width=20%> <INPUT type=text name=Ln size=10 value=''> </TD> </TR> </TABLE> </FORM> プログラム初めてでPHPなんで繰り返しとかも わからず理解不足あると思いますが、 ご助力お願いいします。

関連するQ&A

  • 優先順位を決めて、そこからランダムに選んでいく方法

    MySQLバージョン4.1.16を使用しています。 次のような、priority(1が最も優先順位が高い)を カラムに持つテーブル「users」で、flagが1を条件として priorityが1から順番にランダムに1つだけ選びたいのです。 つまりこの場合、初めは priorityが1の「bbbb」行と「dddd」行からランダムに選ぶのですが、 flagが共に0なので条件に合わないので選ぶことはできません。 次に、priorityが2の「cccc」「eeee」「ffff」行のflagを調べて flagが1の「cccc」「ffff」行の2つからランダムに選ぶことになります。 このようなSQL文はどのような記述になるのでしょうか? テーブル「users」 +----------+---------+---------+ |  user_id  | priority |   flag  | +----------+---------+---------+ |  aaaa   |   3   |   1   | +----------+---------+---------+ |  bbbb   |   1   |   0   | +----------+---------+---------+ |  cccc   |   2   |   1   | +----------+---------+---------+ |  dddd   |   1   |   0   | +----------+---------+---------+ |  eeee   |   2   |   0   | +----------+---------+---------+ |  ffff    |   2   |   1   | +----------+---------+---------+

    • ベストアンサー
    • MySQL
  • access で 方法を教えてください。

    access で 方法を教えてください。 テーブルは セミコロン区切りで、区切られて表示されています (テーブル例)  1 aaaa;bbbb;cccc;dddd;eeee;ffff 2000byte 2 aaaa 300byte 3 bbbb;cccc;ffff 3000byte 4 ffff;dddd 120byte このセミコロン区切りの区切られたデータの 「件数」と「バイト」を表で表示させる方法を教えて欲しいのです。 上記テーブル例を使用しての(抽出例)  抽出条件    ↓   aaaa 2件 2500byte   bbbb 2件 5000byte  cccc 2件 5000byte   dddd 2件 2120byte   eeee 1件 2000byte   ffff 3件 5120byte 宜しくお願いします。

  • SQLの書き方について教えてください。

    accessについて。 シートの中に列名name、列名friendnameがあります。 name,friendname aaaa,bbbb bbbb,cccc cccc,aaaa dddd,aaaa eeee,bbbb ffff,eeee ほしいデータは aaaa,bbbb,cccc bbbb,cccc,aaaa cccc,aaaa,bbbb dddd,aaaa,bbbb eeee,bbbb,cccc ffff,eeee,bbbb と友達の友達の名前がほしいのです。 SQLの書き方を教えてください。 よろしくお願いします。

  • CREATE VIEWについて

    2つのテーブル(basecodeとaddcode)からVIEWを作りたいのですが、 そのVIEWについてご教授いただきたく。 <TABLE名:basecode> ---------------------- no name area code ---------------------- 1 aaaa 2 102 2 bbbb 4 103 3 cccc 4 203 4 gggg 3 303 5 eeee 3 101 6 ffff 5 104 7 hhhh 1 115 ---------------------- <TABLE名:addcode> ----------------------------------------- base anum bnum cnum dnum dmy no ----------------------------------------- bbbb 1 1 1 1 aaa 2 cccc 12 13 10 2 aaa 3 cccc 12 13 10 0 aaa 3 cccc 12 13 10 5 aaa 3 dddd 12 15 3 1 aaa 3 dddd 12 15 3 3 aaa 3 dddd 12 15 3 4 aaa 3 eeee 10 3 12 1 aaa 5 eeee 10 3 12 2 aaa 5 eeee 10 3 12 3 aaa 5 eeee 10 3 12 4 aaa 5 eeee 13 12 15 3 aaa 5 eeee 13 12 15 0 aaa 5 eeee 13 12 15 1 aaa 5 eeee 13 12 15 2 aaa 5 hhhh 4 3 11 0 aaa 7 hhhh 4 3 11 2 aaa 7 hhhh 4 3 13 2 aaa 7 kkkk 0 0 0 0 aaa 9 ----------------------------------------- VIEWの抽出は以下の通り。  basecodeのno  basecodeのname  basecodeのcode  addcodeのbase  addcodeのanum  addcodeのbnum  addcodeのcnum  addcodeのdnum VIEWの作成条件としては以下の通り。 <条件> TABLE名:basecodeとaddcodeのnoが存在し、かつ、 baseaddのnoが複数あり、baseが同じものは以下で判断  ・anumとbnumとcnumが同一であればその中のdnumが最小であるレコードを抽出  ・anumとbnumとcnumが異なれば別々に抽出 上記より、以下のように抽出したい。 <TABLE名:basecodeview> ----------------------------------------------- no name code base anum bnum cnum dnum ----------------------------------------------- 2 bbbb 103 bbbb 1 1 1 1 3 cccc 203 cccc 12 13 10 0 3 cccc 203 dddd 12 15 3 1 5 eeee 101 eeee 10 3 12 1 5 eeee 101 eeee 13 12 15 0 7 hhhh 115 hhhh 4 3 11 0 7 hhhh 115 hhhh 4 3 13 2 ----------------------------------------------- よろしくお願いします。

  • SQLでの集計

    下記の様に、「複数のitemを買っているuserと購入されたitem」のテーブルと、 user item ---------------------------------- 田中 AAAA 田中 CCCC 田中 EEEE 北野 DDDD 北野 BBBB 北野 AAAA 小堺 CCCC 小堺 EEEE 松本 EEEE 松本 KKKK 松本 CCCC 松本 DDDD 浜田 BBBB 浜田 DDDD 下記の様な IDに紐付いた 「item」のテーブルから、 ID  item ---------------------------------- 1   AAAA 2   BBBB 3   CCCC 4   DDDD 5   EEEE 下記の様に各itemと各itemを買った場合に一緒に買われるitemの一覧を結果 として表示させたいのですが、クエリの作り方が思い浮かばず、困っています。 ※)可能であれば、買われたitemを表示する際にはbuy1から(左側から)同時購入 回数の多いitemを重複せずに並べて表示したい ID  item  buy1  buy3  buy4  buy5  buy6・・・・ ---------------------------------- 1  AAAA CCCC BBBB DDDD EEEE 2  BBBB DDDD AAAA 3  CCCC AAAA EEEE DDDD KKKKK 4  DDDD AAAA BBBB CCCC EEEE 5  EEEE AAAA CCCC KKKKK 尚、IDと紐付いているitem数は決まっていますが、買われるitemの種類は上記 の様にIDが1~5だけではなく、集計してみないと判らない状況です。 今の所、SQLはACCESS(2003)上にて手打ちしています。 以上、ご教示のほど、宜しくお願い致します。

  • VBScript(vbs)での行の取得について

    あるテキストの中に空行をはさんで文字列がある時に"ABCD"の文字列を含む場合はABCDを含むひとまとまりだけを取得したいのですがその方法について教えてください。 [テキスト] AAAA BBBB CCCC DDDD EEEE ABCD FFFF GGGG HHHH [取得したい部分] DDDD EEEE ABCD FFFF

  • UNIXで文字列分割

    UNIXでマルチバイトの文字列で分割したいです。 例) aaaa bbbb cccc dddd eeee ffff ↓ [bbbb]で分割 [1]aaaa [2] cccc dddd eeee ffff できればawkで処理をしたいと考えています。

  • エクセルで教えて下さい。

    エクセルで教えて下さい。 オートフィルタ、ピボットテーブル以外で関数などで教えて下さい。 A列に大量の文字列があり重複したりしてます。 そこで、 B列にはA列にある大量の文字列を重複なしで表示させたいと思ってます。 例えば A列 B列 AAAA AAAA BBBB BBBB AAAA CCCC CCCC DDDD DDDD EEEE DDDD FFFF EEEE FFFF EEEE AAAA みたいな感じです。A列は編集可能でQQQQを追加すれば自動でB列にも表示させたいです。 このようなことを簡単にできますでしょうか? 宜しくお願いします。

  • データを西暦ごとにテーブルに分けたい

    30万件ほどデータがあるテーブルtableがあります。 フィールドyearにそのデータが作成された西暦が4桁のint型で記されているのですが、 これを1年ごとに分割してテーブルを生成したいです。 ---------- table (id はオートインクリメント) id name year info 1 aaaa 2011 aaaaaaaa   2 bbbb 2012 bbbbbbbb 3 cccc 2010 ccccccc 4 dddd 2012  dddddddd 5 eeee 2011  eeeeeee : : ↓ table2010 id name year info 1 cccc 2010 ccccccc : : table2011 id name year info 1 aaaa 2011 aaaaaaaa 2 eeee 2011  eeeeeee : : table2012 id name year info 1 bbbb 2012 bbbbbbbb 2 dddd 2012  dddddddd : : ------------ データが数十件ならphpmyadminを駆使するのですが、今回はデータ量が多いこともあり、 これらを上手に分ける方法となると現在の私の力では難しいです。 このような形でテーブルを分割する方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • wordの段落を通番で振りなおしたい

    word2003で段落を設定した文書があるんですが、番号を振りなおしてつけているため、以下のようになっております。 1.aaaa 2.bbbb 3.cccc 1.dddd 2.eeee 1.ffff 2.gggg 3.hhhh これを以下のような通しの段落番号に変換することは可能でしょうか? 1.aaaa 2.bbbb 3.cccc 4.dddd 5.eeee 6.ffff 7.gggg 8.hhhh 各段落の1.を”自動的に番号を振る”を選択すればできると思いますが、数が多いため簡単な方法を探しております。 よろしくお願いいたします。

専門家に質問してみよう