提问者:小点点

将SQL结果绑定到PHP数组中


我尝试创建一个函数,在从所有用户中删除一个用户id后,为他们重建用户id。例如:

测试表:

id|text
1|aaa
2|bbb
3|ccc
4|ddd
6|fff
7|ggg
8|hhh
9|iii
10|jjj

删除记录: 5|eee

我想修复所有用户的id,并修复mysql的自动增量

固定表:

id|text
1|aaa
2|bbb
3|ccc
4|ddd
5|fff
6|ggg
7|hhh
8|iii
9|jjj

function rebuild_user_id($mysqli) {

$row_count = get_dbt_rows_count('test', $mysqli);
$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

    for ($i = 1; $i <= $row_count; $i++) {

    //Fetch all rows in result and store them in an array $rows
    $rows = array();
    while($row = $result->fetch_row()) {
        $rows[] = $row;
    }

    $currentid = $rows[$i];
    $mysqli->query("UPDATE test SET id = $i WHERE id = $currentid");
    }


// set fixed auto_increment
$ai_value = $row_count + 1;
$mysqli->query("ALTER TABLE `test` AUTO_INCREMENT=$ai_value");

}

我尝试过任何时候,结果都是一样的——修复自动增量有效,但修复所有用户的id。。。嗯,有什么建议吗?


共1个答案

匿名用户

eggyal是正确的,这似乎是不好的做法,但hek2mgl得到了正确的答案,这个问题应该被标记为已回答:

这是相关的how-to-reindex-mysql表希望这有助于-hek2mgl