gpt4 book ai didi

php - MySQL - 在 PHP 中批量重命名所有行

转载 作者:行者123 更新时间:2023-11-29 13:48:29 26 4
gpt4 key购买 nike

因此,在这段代码中,我刚刚从表中删除了一行,因此,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'];”周围,因为所有查询的使用方式都不同,即使略有不同,但它们应该可以工作......

提前致谢!

最佳答案

我最终只是这样做了:

$i = 1; 
while($row = mysql_fetch_array($res)){
$old_pos = $row['img_pos'];
$sql = "UPDATE $tableImg SET img_pos = $i WHERE img_acc = $accid AND img_pos = $old_pos";
$res = mysql_query($sql);
$i++;
};

关于php - MySQL - 在 PHP 中批量重命名所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com