このコードでは、テーブルから行を 1 行削除したので、img_pos の値は 1,2,3,4,5 となりました (3 番目のエントリを削除したと仮定して): 1, 2,4,5 もちろん、これを 1,2,3,4 にしたい
したがって、行の名前をバッチで変更する必要があります。
私はこれを手に入れましたが、うまくいかないようです....
$sql = "SELECT * FROM $tableImg WHERE img_acc = $accid ORDER BY img_pos";
$res = mysql_query($sql);
$num = mysql_num_rows($res);
$i = 0;
$n = 1;
while($i<$num){
$sql = "SELECT * FROM $tableImg WHERE img_acc = $accid ORDER BY img_pos DESC LIMIT $i,1";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$img_pos = $row['img_pos'];
$sql = "UPDATE $tableImg SET img_pos = '$n' WHERE img_acc = '$accid' AND img_pos = '$img_pos'";
$res = mysql_query($sql);
$i++;
$n++;
}
mysql_close();
$tableImg は、テーブル名を含む単なる変数であり、問題なく機能します。問題は「$img_pos = $row['img_pos'];」のどこかにあると思います。これは、すべてのクエリがどこかで使用されているためです。わずかに異なっていても、動作するはずです...
前もって感謝します!