如何使用PHP增加唯一的收据编号并在mysql数据库中更新它?

时间:2019-07-05 00:18:09

标签: php

我正在尝试增加收据编号并将该新收据编号添加到mysql数据库中。

这是我编写的代码:

<?php 
    require 'config.php';
    $sql = "SELECT * FROM receipts ORDER BY id";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
    $date = date("ymdhs");
    $row2 = $row['id'];
    $recnum = $date.'-00'.($row2+);
    echo $recnum ;
    $sql = "UPDATE receipts SET recnum='$recnum' WHERE id='$row2'";
    if ($conn->query($sql) === TRUE) {
        echo "updated";
    } else {
        echo "Error updating record: " . $conn->error;
    }

    $conn->close();

?>

2 个答案:

答案 0 :(得分:1)

未在您的选择查询中指定顺序。因此,除非您使用ORDER BY子句查询数据,否则RDBMS不能保证您的数据将以特定顺序返回,甚至无法以一致的顺序返回。 如果要依赖此顺序,则必须使用ORDER BY指定所需的顺序。 “ $ row2 +”不会增加$ row2,请使用(++ $ row2)-加号应位于变量之前-。

答案 1 :(得分:0)

我设法调试了我的代码。 这是工作代码。

<?php 

    require 'config.php';
        $sql = "SELECT * FROM receipts ORDER BY id DESC LIMIT 1";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
    $date = date("ymdhs");
    $row2 = $row['id'];
    $recnum = $date.'-00'.$row2;
    echo $recnum ;
    $sql = "UPDATE receipts SET recnum='$recnum' WHERE id='$row2'";
    if ($conn->query($sql) === TRUE) {
        echo "";
    } else {
        echo "Error updating record: " . $conn->error;
    }

    $conn->close();

?>