我需要使用 php mysql 准备发票,我已经准备好了,我的问题是每年的发票编号都重置为第一个。
例如:2013 - 1、2013 - 2、2013 -3。2014 年 1 月、2014 年 2 月、2014 年 3 月。
我的桌子
CREATE TABLE IF NOT EXISTS `gen` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`invno` int(11),
`prefix` varchar(500) DEFAULT NULL,
`year` year(4) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`invno`,`year`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
代码是
$year = date("Y", time());
$sql = "SELECT year FROM gen where year = '$year' ";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$inv = '0';
if ($count == 0) {
$inv = '0';
} else {
$list = mysql_fetch_assoc($result);
$inv = $list['invno'];
}
if ($inv == '0') {
$inv = '1';
} else {
$inv++;
}
echo $inv;
当我执行时它显示“1”,表中有更多发票。我在单独的字段中设置了年份。我认为如果在该年发票编号中找不到任何行,则 sql 查询检查表中的年份应设置为 1,否则会增加先前的编号。