当前位置: 首页 > 知识库问答 >
问题:

将SQL结果绑定到PHP数组中

夏祯
2023-03-14

我尝试创建一个函数,在从所有用户中删除一个用户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个答案

汤承允
2023-03-14

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

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

 类似资料:
  • 问题内容: 我最近从mysql切换到mysqli并开始使用准备好的语句。在mysql中我们做 因此,我们将整个表的数组放在一个变量中。 但是在mysqli中 所以基本上这里只有一个变量绑定到变量结果。我们如何获得与从mysql获得的变量(数组)相同的变量? PS-希望我的问题足够清楚。我知道他们的方法不多,但我希望能找到最好的方法。 PSS-我对程序方式比较满意。 问题答案: 最终,这段代码可以正

  • 问题内容: 我正在尝试提出一种SQL解决方案,以安排输出以匹配预期的JSON格式。 我有一些简单的SQL来突出显示问题的根源。 它将返回JSON为; 我需要的是在“ telecome”数组中添加额外的对象,使其看起来像; 我错误地认为我可以继续添加到我的SQL中,如下所示: 但是它将按照我的命名缩进嵌套项目; 由于与另一个列名或别名冲突,无法在JSON输出中生成属性’telecom.use’。SE

  • 问题内容: 下面的查询: 给我这样的结果: 我想要的是这样的结果: 如何更改原始SQL查询以得到上面的结果? 问题答案: 您要使用,这应该可以工作: 请注意,不再存在,因为它正在聚合。

  • 问题内容: $ sql =“ INSENT INTO data(id,num,name)VALUES ”; 如何将$ array转换成? 谢谢 问题答案: implode()可以帮助您做到这一点,尽管您将需要遍历并将其应用于每个单独的数组:

  • 问题内容: 我想将结果数组转换为PHP中的JSON格式。这是我的代码: 我想转换为JSON格式并将JSON数据传递给jQuery插件。 问题答案: 在php> 5.2.0中可用:

  • 问题内容: 我知道这应该是简单的,我可能正直盯着问题,但我再次陷入困境,需要代码专家的帮助。 我试图从jdbc的一列中取出一行,并将它们放入数组中。 我这样做如下: creatConnection是已经定义的方法,可以执行其明显的工作。我在创建另一个结果集的同时创建了我的结果集,我将该列的字符串存储到一个数组中。然后打印出来以备不时之需。还要确保它在那里。 问题在于其将整个列存储到contactL