【问题标题】:dynamically change the auto-increment in mysql动态更改mysql中的自动增量
【发布时间】:2015-09-30 08:08:15
【问题描述】:

我有一个向表格添加一些数据的表单。我有一个打印数据的 php 文件。在此页面的每一行中都会打印一个链接,当您单击它时,您将进入一个页面删除该单行。 这个页面叫做 delete.php 但是有一个问题:当单行被删除时,如果我再添加一行,自动增量会打印错误! 例如,如果您删除第 7 行并打印了 13 行,当您添加另一行时,打印的自动增量列将如下所示: 1,2,...,12,14

这里是delete.php的代码:

$conn = new mysqli($servername, $username, $password, $dbname);  
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
        } 
 else {
    echo "" . mysqli_error($conn);
}

$id=$_GET['id'];


$sql = "DELETE FROM qolak WHERE id='$id'";

if (mysqli_query($conn, $sql)) {
    echo "";
    for($i=$id+1;$i<=1000;$i++){
    $j=$i-1;
    $sql = "UPDATE qolak SET id='$j' WHERE id='$i'";
   // 

    if (mysqli_query($conn, $sql)) {
    echo "";
} else {
    echo "" . mysqli_error($conn);
}
 }
    }
$rownum=$_GET['rownum'];
$rownum+=1;
$ssql = "ALTER TABLE qolak AUTO_INCREMENT ='$rownum'";


    if (mysqli_query($conn, $ssql)) {
    echo "";
} else {
    echo "" . mysqli_error($conn);

}

mysqli_close($conn);

这是我的问题:

$ssql = "ALTER TABLE qolak AUTO_INCREMENT ='$rownum'";

此查询不会动态更改自动增量 请帮忙!!!

【问题讨论】:

标签: php mysql dynamic auto-increment


【解决方案1】:

选择的方法不满足基本问题:

您必须区分作为 ID 的自动增量和作为人类可读编号的输出。将其分开,因为自动增量永远不会连续,这是设计使然!

您永远不应该尝试手动更改自动增量值。期间。

如果您想要一些连续的行编号,请在您的 html 中添加一个额外的列(不在数据库中,因为那里没有“行号”!)

使用ID = 13 删除第 7 行将导致第 8 行变为新的第 7 行,依此类推。

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2013-11-07
    • 2019-03-04
    • 2011-12-30
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    相关资源
    最近更新 更多