【问题标题】:How to get auto number based on selected date如何根据所选日期获取自动编号
【发布时间】:2015-04-08 22:30:49
【问题描述】:

请帮我根据所选日期获取自动编号?我有自动编号的工作代码,但这仅适用于今天/当前日期。我想要的是如果选择了日期选项然后根据选择的日期生成自动编号...

这是我当前日期的示例代码

    $today=date("ymd");
    $query = "SELECT max(id) AS last FROM member WHERE id LIKE '$today%'";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    $lastNoTransaksi = $data['last'];
    $lastNoUrut = substr($lastNoTransaksi, 8, 2);
    $nextNoUrut = $lastNoUrut + 1;
    $nextNoTransaksi = $today.sprintf('.%02s', $nextNoUrut);?>

这是我的 html 选定日期的完整代码

<?php
require("db.php");
$today=date("ymd");
$query = "SELECT max(id) AS last FROM member WHERE id LIKE '$today%'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);
$lastNoTransaksi = $data['last'];
$lastNoUrut = substr($lastNoTransaksi, 8, 2);
$nextNoUrut = $lastNoUrut + 1;
$nextNoTransaksi = $today.sprintf('.%02s', $nextNoUrut);?>



<form method="post">
<table align="center">
<tr ><td>Date</td>
<td><input type="date" name="date" /></td>
</tr>
<tr><td>Code</td>
<td>
<?php echo $nextNoTransaksi; ?></td>
</tr>
<tr >
<td>Name</td>
<td><input type="text" name="name" /></td>
</tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Input" /></td>
</tr>
</table>

非常感谢您的热心帮助

【问题讨论】:

  • 什么时候需要生成这个号码?在表单提交之前还是之后?
  • 我更喜欢在提交之前..所以在选定的日期之后将生成自动编号...您有简单的代码吗??

标签: php mysql database autonumber


【解决方案1】:

您可以将日期转换为 unix 时间戳并使用它来生成您的号码。

$date = date('ymd', strtotime('2014-03-20'));

你的情况

$date = date('ymd', strtotime($_POST['date']));

也可以使用time()获取当前unix时间戳并修改

time() + 60*60; // current time + 1 hour

【讨论】:

  • 嗨 lexmihaylov,感谢您的回复..上面的示例代码正在工作并生成自动编号..但是当我从日期选择框中选择另一个日期时不起作用
  • 你能发布你的html(特别是选择框)
  • 嗯......输入(日期)产生什么样的日期格式......格式可能与strtotime不兼容,在这种情况下你应该使用jquery插件日期选择器或自己解析日期
  • 你能给我举个例子吗?真的很抱歉,我只是 php 和 jquery 的初学者 :)
  • 嗯其实我测试过,格式应该是标准的。我看不到您在哪里处理帖子参数$today=date("ymd", strtotime($_POST['date']));
【解决方案2】:

非常感谢 lexmihaylov...现在可以正常工作了

所以我创建了 2 个文件...

  1. form.php
  2. 自动编号.php

这个form.php

<form method="post" action="autonumber.php">
<table align="center">
<tr><td>Date</td>
<td><input type="date" name="date" /></td>
</tr>
 <tr><td>Company</td>
 <td><input type="text" name="company" /></td>
 </tr>

<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Input" /></td>
</tr>
</table>

这是autonumber.php

<?php
 require("db.php");
 $today=date("ymd", strtotime($_POST['date']));
 $query = "SELECT max(id) AS last FROM member WHERE id LIKE '$today%'";
 $hasil = mysql_query($query);
 $data  = mysql_fetch_array($hasil);
 $lastNoTransaksi = $data['last'];
 $lastNoUrut = substr($lastNoTransaksi, 8, 2);
 $nextNoUrut = $lastNoUrut + 1;
 $nextNoTransaksi = $today.sprintf('.%02s', $nextNoUrut);
 ?>

 <?php echo $nextNoTransaksi; ?>

现在每次我更改日期时,都会根据我选择的日期生成自动编号...

谢谢你帮助我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多