所以在这段代码中,我只是从表中删除了一行,所以 img_pos 的值是:1,2,3,4,5 现在,它们是(假设我们删除了第三个条目):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'];”附近的某个地方,因为所有查询都在不同的地方使用,即使略有不同,它们应该可以工作......
提前致谢!