在字符串php上添加序列号

时间:2014-06-22 11:25:02

标签: php

我有这些代码:

    //ambil nomor surat maksimum pada tabel surat_keterangan
$query = "SELECT MAX(nomor_surat) as noMax FROM surat_keterangan";
$result = mysqli_query($link,$query);
$row  = mysqli_fetch_array($result);
$nomor = $row['noMax'];
    //ambil karakter nomor urut surat paling kiri sebanyak 1 karakter (0, 1)
$noUrut = (int) substr($nomor, 0, 1);
$noUrut++;

//mengambil bulan dan tahun dari tanggal surat
$bulan = substr($tgl_surat,3,2);
$tahun = substr($tgl_surat,6,4);

//membuat nomor surat
$nomor_surat = $noUrut."/SK/".$bulan."/DPK3/".$tahun;

输出将是

  

1 / SK / 06 / DPK3 / 2014。

每次插入数据时,第一个字符串(1)都会添加。 我已经尝试过10 / SK / 06 / DPK3 / 2014,但是当我继续输入时,输出仍然是

  

10 / SK / 06 / DPK3 / 2014,而非11 / SK / 06 / DPK3 / 2014。

还有另外一种方法吗? 谢谢你的每一个回复和答案。

2 个答案:

答案 0 :(得分:1)

问题与$noUrut = (int) substr($nomor, 0, 1);一致,你在第一个字符中使用alwazy(当字符串以10开头时,你只使用11++使用2。

因此,您需要找到第一个斜杠(/)位置,而不是使用substr。

$noUrut = (int)substr($nomor, 0, strpos($nomor, '/'));
$noUrut++;

或只是在线

$noUrut = (int)substr($nomor, 0, strpos($nomor, '/')) + 1;

答案 1 :(得分:1)

你的领域是" nomor_surat"使用varchar变量?如果是这样,那么你需要将它转换为int

how to query get max id from varchar type and the values in numeric?