- 締切済み
テーブルへの挿入と削除
PHPにて追加を押すと、テーブルの最終リストに 「番号(1から連番)・商品名(プルダウン)・数量入力欄(text)・削除ボタン」 が挿入され、削除ボタンを押すと行が削除されるようにしたいのですが、今の状態ですと削除ボタンを押した場合、無条件に最終リストが 削除されてしまいます。 どうにかして削除ボタンを押した行が削除される様にしたいのですが? ↓現在のソース 最初0から始まり追加を押すと+1、削除を押すと-1。それをhiddenに与えその値の数だけ行を作成するようにしました。 $button=$_POST["add"]; if($button=="追加”){ $NOO=$NO+1; }else if($button=="削除"){ $NOO=$NO-1; } print "<input type=hidden name=NO value=$NOO>\n"; }else{ print "<input type=hidden name=NO value=0>\n"; } if(isset($_POST["add"])){ $count=0; for($i=0;$i<$NOO;$i++){ $count++; print "<tr><td align=right>$count</td><td ><select name=item[]>\n"; $sql = "select item_name from m_item order by item_code"; $col = pg_fetch_array($result); $col = pg_query($con, $sql); while($data = pg_fetch_array($col)){ > <OPTION VALUE="<?php $data['item_name'] ?>"> <?php echo $data['item_name'] ?> </OPTION> <?php } print "</select> </td>\n"; if(isset($kazu[$i])){ print "<td><input type=text size=10 name=kazu[] value=$kazu[$i]></td>\n"; }else{ print "<td><input type=text size=10 name=kazu[]></td>\n"; } print "<td><input type=submit name='add' value="削除" onclick =keisan()></td></tr>\n"; } }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- syuuiwsd
- ベストアンサー率56% (17/30)
データベースのテーブルから行を削除とするなら、 DELETE FROM m_item WHERE item_code=XXX のようなSQLコマンドが必要だと思います。
- hrm_mmm
- ベストアンサー率63% (292/459)
>現状で削除自体(無条件に最終行ですが)は出来ていますが? 最終行を表示してないだけで、データベース自体からは削除してませんよ? 再度、全行表示してみれば、全部表示されるでしょう。 で、表示しないだけでいいのですか? それともデータベースから削除したいのですか?
- syuuiwsd
- ベストアンサー率56% (17/30)
ご質問に、若干理解できないところがあります。 >$col = pg_fetch_array($result); >$col = pg_query($con, $sql); 一行目は要らないでしょう? ><OPTION VALUE="<?php $data['item_name'] ?>"> 変数を出力していないですよ。valueは常に空きでしょう? しかも、テーブルから行を削除するSQLがないです。
補足
$col = pg_fetch_array($result); ><OPTION VALUE="<?php $data['item_name'] ?>"> ⇒確かに必要ありませんでした。 テーブルから行を削除するSQLがないです。 ⇒テーブルから行を削除するのにSQLが必要なんですか? 現状で削除自体(無条件に最終行ですが)は出来ていますが?