php - 如何使用php生成发票号码
问题描述
我需要从具有自动增量 ID 的表中生成发票编号。这是我尝试过的代码,但是当加载表单时发票编号显示错误。 错误
警告:遇到非数字值
我需要一个结果为 E -0000001 ,当订单完成后加载的表单需要增加,因为 E-0000002增加 1
<?php
$query = "SELECT id, CONCAT( 'E-', LPAD(id,7,'0') ) FROM employee";
$result = mysqli_query($conn,$query);
$row = mysqli_fetch_array($result);
$lastid = $row['id'];
$number = "F-". $lastid;
if($lastid == " ")
{
$number = "E-0000001";
}
else
{
$number = "E-" . ($number + 1);
}
?>
<?php
if($_SERVER["REQUEST_METHOD"]== "POST")
{
$id = $_POST['id'];
$ename = $_POST['ename'];
$sal = $_POST['sal'];
if(!$conn)
{
die("connection failed " . mysqli_connect_error());
}
else
{
$sql = "insert into employee(id,ename,salary)VALUES('$id','$ename','$sal') ";
if(mysqli_query($conn,$sql))
{
echo "Record ADDEDDDDDDD";
}
else
{
echo "Record Faileddd";
}
}
}
?>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</head>
<body>
<div class="row">
<div class="col-sm-4">
<form action="<?php echo($_SERVER["PHP_SELF"]); ?>" method="post">
<div align="left">
<h3>Auto No in Php</h3>
</div>
<div align="left">
<label>Employee No</label>
<input type="text" class="form-control" name="id" id="id" style="color: blue" value="<?php echo $number; ?>" readonly >
</div>
<div align="left">
<label>Employee Name</label>
<input type="text" class="form-control" name="ename" id="ename" >
</div>
<div align="left">
<label>Employee Salary</label>
<input type="text" class="form-control" name="sal" id="sal" >
</div>
</br>
<div align="left">
<input type="submit" value="ADD" class="btn btn-success">
</div>
</form>
</div>
</div>
解决方案
做这样的事情。这将使 id 增加 1。
<?php
$conn = new mysqli("localhost","root","","employee_db");
// Check connection
if ($conn -> connect_errno) {
echo "Failed to connect to MySQL: " . $conn -> connect_error;
exit();
}
$query = "SELECT id FROM employee ORDER BY id DESC";
$result = mysqli_query($conn,$query);
$row = mysqli_fetch_array($result);
$lastid = $row['id'];
if(empty($lastid))
{
$number = "E-0000001";
}
else
{
$idd = str_replace("E-", "", $lastid);
$id = str_pad($idd + 1, 7, 0, STR_PAD_LEFT);
$number = 'E-'.$id;
}
?>
<?php
if($_SERVER["REQUEST_METHOD"]== "POST")
{
$id = $_POST['id'];
$ename = $_POST['ename'];
$sal = $_POST['sal'];
if(!$conn)
{
die("connection failed " . mysqli_connect_error());
}
else
{
$sql = "insert into employee(id,ename,salary)VALUES('".$id."','".$ename."','".$sal."') ";
if(mysqli_query($conn,$sql))
{
echo "Record ADDEDDDDDDD";
$query = "SELECT id FROM employee ORDER BY id DESC";
$result = mysqli_query($conn,$query);
$row = mysqli_fetch_array($result);
$lastid = $row['id'];
if(empty($lastid))
{
$number = "E-0000001";
}
else
{
$idd = str_replace("E-", "", $lastid);
$id = str_pad($idd + 1, 7, 0, STR_PAD_LEFT);
$number = 'E-'.$id;
}
}
else
{
echo "Record Faileddd";
}
}
}
?>
推荐阅读
- swift - 如何在 UIAlertController 被解除后立即执行代码块
- c# - 在 C# 双引号中将 JSON 发送到 WebSocket
- javascript - 在窗口调整大小时重新计算元素大小
- typescript - 如何检查对象是否仅包含 Typescript 中的指定键?
- function - 如何用另一个功能停止(或类似的东西)一个功能?
- powershell - 需要查找当前在 IIS 中使用的日志文件的名称
- excel - 从excel中的不同工作簿中提取数据
- python-3.x - 在 tr 标签中抓取特定属性
- python - 熊猫用计数创建新列
- asp.net-core-mvc - 覆盖默认 Identity Server 4 客户端