我正在尝试增加收据编号并将该新收据编号添加到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();
?>
答案 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();
?>