|
PHP Auto Generate Number ตัวอย่างการทำ Auto Number แบบมี รหัส/ตัวอักษร/ปี/เดือน ข้างหน้า |
PHP Auto Number ตัวอย่างการทำ Auto Number แบบมี รหัส/ตัวอักษร/ปี/เดือน ข้างหน้า และเมื่อมีการเปลี่ยนปี หรือเดือน หรือวันใหม่ ให้มีการเริ่มต้นนับ 1 อีกครั้ง ด้วย PHP กับ MySQL แบบง่าย ๆ
เห็นมีถามกันหลายกระทู้ วันนี้มีโอกาศเลยได้เขียนให้ซะหน่อยครับ โดยตัวอย่างนี้จะเก็บค่าลงใน Table ของ MySQL และมีการดึงรหัส id พร้อม ๆ กับทำการ Update ค่าใหม่ลงไป
รูปแบบ
2011-00001
การเก็บข้อมูลในตาราง
Code
CREATE TABLE `prefix` (
`keyname` varchar(10) NOT NULL,
`val` varchar(10) NOT NULL,
`seq` int(4) NOT NULL,
PRIMARY KEY (`keyname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `prefix`
--
INSERT INTO `prefix` VALUES ('year', '2011', 1);
Code เต็ม ๆ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?php
//*** Connect to Database **//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strNextSeq = "";
//*** Check Year ***//
$strSQL = "SELECT * FROM prefix WHERE 1 ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
//*** Check val = year now ***//
if($objResult["val"] == date("Y"))
{
$Seq = substr("00000".$objResult["seq"],-5,5); //*** Replace Zero Fill ***//
$strNextSeq = $objResult["val"]."-".$Seq;
//*** Update Next Seq ***//
$strSQL = "UPDATE prefix SET seq= seq+1 ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
}
else //*** Check val != year now ***//
{
$Seq = substr("000001",-5,5); //*** Replace Zero Fill ***//
$strNextSeq = date("Y")."-".$Seq;
//*** Update New Seq ***//
$strSQL = "UPDATE prefix SET val = '".date("Y")."' , seq = '1' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
}
echo $strNextSeq;
mysql_close($objConnect);
?>
</body>
</html>
Screenshot
จากตัวอย่างนี้จะมีการนับข้อมูลเป็นปี ถ้ามีการเปลี่ยนหรือขึ้นปีใหม่ ก็จะมีการเริ่มนับใหม่อีกครั้ง โดยตัวแปรที่ใช้คือ date("Y")
ซึ่งจะได้ค่ามาเป็น 2011 หรือถ้าหากต้องการเปลี่ยนการนับ
ในแต่ล่ะเดือนก็สามารเปลี่ยนเป็น
date("Y")."-".date("m")
รูปแบบที่จะได้ก็คือ
2011-04-00001
ตัวอย่างการใช้รูปแบบ YYYY-MM-XXXXX
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?php
//*** Connect to Database **//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strNextSeq = "";
//*** Check Year ***//
$strSQL = "SELECT * FROM prefix WHERE 1 ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
//*** Check val = year,month now ***//
if($objResult["val"] == date("Y")."-".date("m"))
{
$Seq = substr("00000".$objResult["seq"],-5,5); //*** Replace Zero Fill ***//
$strNextSeq = $objResult["val"]."-".$Seq;
//*** Update Next Seq ***//
$strSQL = "UPDATE prefix SET seq= seq+1 ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
}
else //*** Check val != year,month now ***//
{
$Seq = substr("000001",-5,5); //*** Replace Zero Fill ***//
$strNextSeq = date("Y")."-".date("m")."-".$Seq;
//*** Update New Seq ***//
$strSQL = "UPDATE prefix SET val = '".date("Y")."-".date("m")."' , seq = '1' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
}
echo $strNextSeq;
mysql_close($objConnect);
?>
</body>
</html>
Screenshot
.
|
|
|
|
|
|
|
|
By : |
TC Admin
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
|
|
Create Date : |
2011-04-20 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|
|
|