- 締切済み
現在は、ID別に一覧ずつ修正を行い、修正ボタンをクリックしてDBに反映
現在は、ID別に一覧ずつ修正を行い、修正ボタンをクリックしてDBに反映させますが、 あちこち不同なIDの不同なところを修正して、最後に「全体修正」をクリックし、修正した全てが一斉にDBに 反映させるにはどのようにしたらいいでしょうか? ID 所属 年齢 性別 1 営業部 23 男性 「修正」 「削除」 2 営業部 22 女性 「修正」 「削除」 「全体修正」 ご教授よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yuu_x
- ベストアンサー率52% (106/202)
phpMyAdmin でよくない?
- yambejp
- ベストアンサー率51% (3827/7415)
フローとしてはこんな感じがよいのでは? javascriptを使わない限り、データは全部おくるしかありませんので、受け取った側で フィルタをかけるのが妥当。 全体修正のときだけ例外処理を入れる感じですね。 ちなみに今回はデータのバリデートやサニタイズをしていないので必要に応じて ご自身で調整してください。 <form> <div> <input type="text" name="id" value="1" readonly> <input type="text" name="sect[1]" value="営業"> <input type="text" name="age[1]" value="23"> <input type="text" name="sex[1]" value="男性"> <input type="submit" name="del[1]" value="削除" /> <input type="submit" name="mod[1]" value="修正" /> </div> <div> <input type="text" name="id" value="2" readonly> <input type="text" name="sect[2]" value="営業"> <input type="text" name="age[2]" value="21"> <input type="text" name="sex[2]" value="女性"> <input type="submit" name="del[2]" value="削除" /> <input type="submit" name="mod[2]" value="修正" /> </div> <div> <input type="submit" name="mod[all]" value="全体修正" /> </div> </form> <? if(is_array($_REQUEST["del"])){ $id=array_shift(array_keys($_REQUEST["del"])); $sql="DELETE FROM テーブル WHERE id='{$id}'"; print $sql.";<br>\n"; } if(is_array($_REQUEST["mod"])){ $id=array_shift(array_keys($_REQUEST["mod"])); $sect=$_REQUEST["sect"]; $age=$_REQUEST["age"]; $sex=$_REQUEST["sex"]; if($id=="all"){ foreach(array_keys($sect) as $id){ $sql="UPDATE テーブル SET SECTION='{$sect[$id]}',AGE='{$age[$id]}',SEX='{$sex[$id]}' WHERE id='{$id}'"; print $sql.";<br>\n"; } }else{ $sql="UPDATE テーブル SET SECTION='{$sect[$id]}',AGE='{$age[$id]}',SEX='{$sex[$id]}' WHERE id='{$id}'"; print $sql.";<br>\n"; } } ?>