【问题标题】:Query to autonumbering manually by PHP Script通过 PHP 脚本手动查询自动编号
【发布时间】:2015-07-03 20:05:27
【问题描述】:

我在查询自动编号时遇到问题。我有一个包含 unit_id、unit_name 的表 tbUnit 和包含 stu_id、stu_name 的表 tbStudent。 Stu_id 来自 unit_id + year + 0000(4 位自动缓冲)。

如果没有看到unit_id,我可以创建自动编号,但是现在,我想根据unit_id创建数据自动编号,例如:A20150001,A20150002,B20150001(从1重新开始,因为之前没有B单元),...

知道如何创造这些条件吗?根据其他表的 ID 自动编号。我正在使用 MySQL 和 PHP 脚本。

【问题讨论】:

  • 如果我理解正确,我不建议尝试使用自动编号。相反,只需根据您的规则和源表中的值填充一个单独的表属性。
  • 如果我在新行使用自动增量值,如何准确写入 0001、0002、ctd...、0010、ctd...、0100?因为人工智能只会创造 1,2,3,4,ctd...
  • 我认为$string = sprintf("%04d", $digits); 应该可以工作。
  • 如果您不知道,您可以使用date("Y") 获取当前年份。然后,只需从Unit 表中获取最新的单元(例如“B”),将所有这些连接在一起并将其存储在Student 表中。
  • 它不适用于 100 .. 还有其他解决方案吗?我的结果:1 -> 0001, 10 -> 0010, 100 -> 0001

标签: php mysql


【解决方案1】:

如果我理解正确,我不建议尝试使用自动编号。

相反,只需根据您的规则和源表中的值填充一个单独的表属性。我认为$string = sprintf("%04d", $digits); 应该适用于最后四位数字。然后,如果您不知道,您可以使用date("Y") 获取当前年份。然后,只需从Unit 表中获取最新的单元(例如“B”),将所有这些连接在一起并将其存储在Student 表中。

【讨论】:

  • 我提供更多信息:无法在同一行创建带有 PK 的 AI 行,因此我使用 INDEX KEY 创建 AI,它工作正常.. 来自这里的解决方案:stackoverflow.com/questions/14086324/…
  • 你好史蒂夫,我忘记了 1 个问题,当单位更改时如何从 1 重新启动它?
  • 我不确定我是否有这个权利,但我正在想象你有单位被记录在Unit 表中,increasing unit_id(例如 A 表示一个单元块,然后是下一个块的 B,等等)。如果是这样,您能否将最新块与分配给学生 ID 的最新字母进行比较,如果它们不同,请重新启动计数器?
  • 好吧,不。不是 A 然后 B ......但取决于客户从类别列表中选择的内容。例如,有 3 个类别:A、B、C。客户端选择A时返回A20150001,其他客户端也选择A时返回A20150002,其他客户端选择B时返回B20150001...
  • 好的,所以真的有三个运行计数器,每个类别一个?
猜你喜欢
  • 2021-02-21
  • 2019-11-03
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
相关资源
最近更新 更多