###前提・実現したいこと
php, mysqlを使用しています。
以下のようなidとは別にnoで表示順を制御するテーブルを使っていますが、レコードを削除した際にnoカラムに自動的に詰めた連番を振りたいのですが、どうしてもうまい方法が見つかりません。
mysql
1CREATE TABLE `hoge_item` ( 2 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 3 `fuga_id` int(10) unsigned NOT NULL DEFAULT '0', 4 `no` int(10) unsigned NOT NULL DEFAULT '0', 5 `name` varchar(128) DEFAULT NULL, 6 `active_flag` tinyint(4) NOT NULL DEFAULT '0', 7 `reg_date` datetime DEFAULT CURRENT_TIMESTAMP, 8 `upd_date` datetime DEFAULT CURRENT_TIMESTAMP, 9 PRIMARY KEY (`id`), 10 KEY `fuga_id` (`fuga_id`) 11) ENGINE=InnoDB DEFAULT CHARSET=utf8;
###レコード削除までは実行できるが、その前後の処理方法が不明
php
1$sql = "DELETE FROM hoge_item "; 2$sql .= "WHERE id = " . $_GET['fuga_id']; 3$rs = mysql_query($sql); 4if($rs){ 5 $msg = "hogeアイテムの削除に成功しました"; 6} else { 7 $msg = "hogeアイテムの削除に失敗しました"; 8}
fuga_idがKEYなので
0. fuga_idが同じレコードを取得して削除したレコードのnoを取得
0. 1で取得したno以下のnoを全て-1にすれば良い
のですがどのようにすれば良いのかわからず困惑しております。。。。。
###補足情報(言語/FW/ツール等のバージョンなど)
以下のバージョンを使用しています。
PHP 5.6.30 mysqld Ver 5.7.17 for Linux on x86_64 (MySQL Community Server (GPL))
宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー