每年使用php mysql重置发票编号
我需要准备发票使用php mysql,我已经准备好了,我的问题是每年的发票号码重置为第一 例:2013-1、2013-2、2013-3。2014-1、2014-2、2014-3 我的桌子每年使用php mysql重置发票编号,php,mysql,Php,Mysql,我需要准备发票使用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) DEFAUL
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,否则应增加上一个编号。您忘记初始化
$inv
试一试
此外,您没有在查询中选择invno
$sql="SELECT year FROM gen where year = '$year' ";
$inv = $list['invno'];
$sql="SELECT max(invno) FROM gen where year = '$year' ";// may be this is what you want
首先,数字是一个字符串。删除“”并仅输入数字。如果($count==0)你的问题是什么?
如果($inv==0'){$inv='1';}否则{$inv++;}
相当于$inv++
如果发现空行,我设置了$inv=0,那么下一个条件是$inv=0,那么我已经设置了$inv=1。其他明智的前$inv++
$sql="SELECT year FROM gen where year = '$year' ";
$inv = $list['invno'];
$sql="SELECT max(invno) FROM gen where year = '$year' ";// may be this is what you want