【发布时间】:2020-04-06 16:17:55
【问题描述】:
我需要一些解决方案如何制作一些更新数据库。
数据库结构:
我需要根据 season_num 和 series_id 更新 SORT 列。
图片 1 故事
图片 1 显示了 3 个不同的 series_id,第一个是 (with series_id 2),第二个是 (with series_id 3),第三个是是(series_id 为 4)
在这种情况下,每个 series_id 我只有 1 个 season_num 并且 SORT 很好。
图片 2 故事
图 2 显示相同的 series_id 有 2 个 season_num 并且 SORT 也不错。
我需要使 SORT 从 1 开始并以 season_num 的最后一行结束。
图片 3 故事
在这张照片上开始问题,这个series_id有更多的season_num,对我来说有问题。
问题从 season_num 3 开始。SORT 从 season_num 2 开始,但需要重新启动,从 1 开始,而不是从 13 开始。
问题总故事
在图片情况下,我有一个 series_id 的总 season_num = 3,其他 我还有更多 season_num series_id。
season_num 需要在所有新的 season_num 上从 1 开始。
season_num 第一行的 1,2,3,4...60 都需要从 1 开始
代码:
**请注意我的代码不起作用,如果您有任何其他想法,请告诉我!!*
//gritpas public fix
$serije_fix = $db->query("SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'series'");
$inc = 1;
$rows_fetch = $serije_fix->fetch_assoc();
$max_id=$rows_fetch['AUTO_INCREMENT'];
while ($inc != $max_id){
$inc2 = 1;
$inc3 = 1;
$serije_fix2 = $db->query("SELECT * FROM series_episodes WHERE series_id='$inc'");
while ($rows_fetch2 = $serije_fix2->fetch_assoc()){
$serije_id = $rows_fetch2['id'];
if ($rows_fetch2['season_num'] > '1'){
$db->query("UPDATE `series_episodes` SET `sort`='$inc3' WHERE id='$serije_id'");
$inc3 ++;
}else{
$db->query("UPDATE `series_episodes` SET `sort`='$inc2' WHERE id='$serije_id'");
}
$inc2++;
}
$inc++;
}
【问题讨论】:
-
请不要发布代码图片,也可以参考How to Ask。
标签: php mysql sql while-loop