将SQL结果绑定到PHP数组中

时间:2014-02-16 14:32:09

标签: php mysql sql

在尝试从中删除一个用户后,我尝试创建一个功能来重建所有用户的用户ID。例如:

测试表:

id |的文本
1 | AAA
2 | BBB
3 | CCC
4 | DDD
6 | FFF
7 | GGG
8 | HHH
9 |三
10 | JJJ

删除记录:5 | EEE

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

固定表:

id |的文本
1 | AAA
2 | BBB
3 | CCC
4 | DDD
5 | FFF
6 | GGG
7 | HHH
8 |三
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");

}

我已经尝试了同样的结果 - 修复auto_increment有效但修复了所有用户的ID ...呃,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

这是相关的how-to-reindex-mysql-table希望这会有所帮助 - hek2mgl