如何从表列中选择最大数字,分配给变量,并增加1

时间:2018-03-30 05:11:24

标签: php mysql

我是PHP和MySQL的新手。在我的数据库中,我有一个名为invoice的表。这是一个自动递增的id列和invoice_num列(以及其他列)。连接到数据库后,我想:

  1. 获取invoice_num列(发票表格中)中当前最高的数字
  2. 将该值分配给变量并按1
  3. 递增
  4. 将新值回显到屏幕
  5. 类似......

    $highNum = mysql_query("SELECT invoice_num FROM INVOICE ORDER BY id DESC LIMIT 1";);
    $highNum = $highNum++;
    echo "Use Invoice Number:" .$highNum. "\n";
    

    但我不知道正确的语法。

    除了1:放弃id并且只是自动增加invoice_num列会更容易。但是,我希望数字长于单个数字,auto_increment以1 ... 2 ... 3 ...等开头。我知道如果我改变表格,我可以从更高的数字开始,比如100000,但我们分配的bash shell不允许学生改变表格。 除了2:当前invoice_num是一个int。 提前谢谢。

4 个答案:

答案 0 :(得分:1)

$highNum = mysql_query("SELECT MAX(invoice_num) FROM INVOICE";);
$highNum = $highNum++;
echo "Use Invoice Number:" .$highNum. "\n";

我也不了解PHP语法,但您的查询将如上所述。

答案 1 :(得分:0)

您可以使用类似

的内容
$highnum = mysql_query("SELECT MAX(invoice_num) FROM INVOICE");
echo "Use Invoice Number:" .$highNum++. "\n";

答案 2 :(得分:0)

您可以使用以下查询获取最大发票编号,然后使用此处显示的增量变量

$ highNum = mysql_query(" SELECT MAX(invoice_num)FROM INVOICE")

答案 3 :(得分:0)

您可以使用MYSQL的MAX()函数来获取数据库表中最高的invoice_num。

而不是mysql_*函数使用mysqli_*'s代替PDO's,因为mysql_*已在PHP 5.5.0 中弃用,并已被删除在 PHP 7.0.0。

更新代码:

$result = mysqli_query("SELECT MAX(invoice_num) as highNum FROM INVOICE ORDER BY id DESC LIMIT 1";);
$row = mysqli_fetch_assoc($result);
$highNum = $row['highNum']++;
echo "Use Invoice Number:" .$highNum. "\n";