 |
|
|
 |
 |
|
Code (PHP)
protected function _runnumber($sql1){
$sql=mysql_query($sql1);
$num=mysql_fetch_array($sql);
if($num==null){
return 0;
}// return 0 กรณี ที่ไม่มีข้อมูลในฐานข้อมูลจะสร้างออกมาเป็นรหัส QC09VK0001
else{
return $num[0];
}
}// end Function runnumber
public function runnumberMaster(){
return $this->_runnumber("SELECT max(substr(qc_id,7)) FROM master");
}
public function getQcid(){
$Tb = new DbTable($db_conn);
$num = ($Tb->runnumberMaster()+1);
if(($num / 10)<1){
$num="000".$num;
}
elseif(($num / 10)<10){
$num="00".$num;
}
elseif(($num / 10)<100){
$num="0".$num;
}
$qcid_1="QC".date("y").Master::getCs().$num;
$this->qcid=$qcid_1;
return $this->qcid;
}// ใช้สร้างรหัส
จะสร้างรหัสเช่น QC09VK0001,QC09VK0002,QC09VK0003
ตัวเลข 4 ตัวสุดท้ายจะเป็น runnumber คับโดยจะดึงข้อมูลที่มากที่สุดแล้วนำมาบวก 1 คับ
|
 |
 |
 |
 |
Date :
2009-07-06 21:25:53 |
By :
littleturtle |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโทษทีตอบผิดกระทู้ลองไปแปลงโค้ดดูละกันคับ
|
 |
 |
 |
 |
Date :
2009-07-06 21:26:40 |
By :
littleturtle |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำได้หลายวิธีครับ
ถ้าใช้ MySql ,Access,SQLServer สามารถทำ Auto ได้เลยครับ
MySQL : ในช่อง Extra กำหนดเป็น Auto Increment ครับ
Access : ในช่อง Type กำหนดเป็น Auto Number ครับ
SQLServer : ในช่อง Properties : I dentity => Is I dentity กำหนดเป็น Yes ครับ
หรือจะทำแบบกระทู้ข้างบนก็ได้นะครับเป็นอีกวิธีหนึ่ง
Qracle จะทำแบบ ทิกเกอร์ หรือ Code ก็ได้ครับ
หลักการคือ ดึงข้อมูล ID (จำนวนเต็ม) ที่มากที่สุดมาบวกเข้าที่ละหนึ่ง
แต่ถ้า ID (เป็น String) ก็ทำแบบกระทู้ข้างบนก็ได้นะครับ หรือ จะสร้างตารางใหม่ที่เก็บเฉพาะ ID(จำนวนเต็ม) ของแต่ละตาราง เมื่อจะใช้ก็ดึงเข้ามาบวกที่ละหนึ่งจากนั้นค่อยยิงลง Database ครับ (แต่วิธี Code มีข้อเสียคืออาจจะมีการเพิ่มข้อมูลของ User ในเวลาเดียวกันจากหลาย ๆ ที่อาจจะทำให้ใช้ ID เดียวกันจึงทำให้ไม่สามารถบันทึกข้อมูลลงDatabase ได้นะครับ ดังนั้นจะต้องดึงมาเป็นขั้นตอนสุดที่เมื่อต้องการบันทึกนะครับจะช่วยแก่ได้)
ลองประยุคใช้ดูนะครับ
|
 |
 |
 |
 |
Date :
2009-07-07 14:06:40 |
By :
keyte |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากได้ code ที่เพิ่มรหัสให้โดยอัตโนมัติลงฐานข้อมูลค่ะ คือว่าไม่ต้องพิมพ์รหัสก็สามารถบันทึกในฐานข้อมูลได้ แล้วเมื่อลบข้อมูลของรหัสนี้ออก และเมื่อเราจะบันทึกใหม่ รหัสที่พิมพ์ใหม่ก็ต้องเป็นรหัสเดิมที่เราลบออกไป แบบว่าให้มันรันเป็นเลขเดิมให้โดยอัตโนมัติ เพราะที่ทำอยู่เมื่อลบรหัสออกไปเมื่อเราพิมใหม่ก็จะรันเป็นหมายเลยรหัสใหม่ให้เลย คืออยากให้ถ้าลบรหัสเดิมออก เมื่อเราจะพิมใหม่ก็ให้รันเป็นรหัสที่เรียงกันให้โดยอัยโนมัติ เช่น
รหัส 01
02
03
04
ที่ทำอยู่จะเป็นแบบว่าถ้าเราลบรหัส 04 ออก เมื่อบันทึกใหม่มันก็จะเป็นรหัส 05 เลยค่ะ
แต่อยากให้เมื่อลบออกไป ถ้าเราจะพิมพ์ใหม่ก็รันให้เป็นรหัสที่เราลบออกไปก่อนค่ะ ค่อยรันเป็นเลขอื่นต่อไป
|
 |
 |
 |
 |
Date :
2010-07-08 15:52:30 |
By :
chulaleklek |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ออเพิ่งจารุเทรนใหม่นอนถ่ายรูปของผู้ชาย อื้อหึๆ
|
 |
 |
 |
 |
Date :
2010-07-08 17:14:26 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำการ select max id ออกมาแล้วทำการเพิ่มค่า +1 คับ ง่ายๆก็ตามนี้เลยคับ
Code (VB.NET)
'ซับรูทีน AutoGenerateMember_id() ทำหน้าที่สร้างรหัสสมาชิกโดยอัตโนมัติ
Sub AutoGenearteMember_id()
Dim sqlTmp As String = "" 'ตัวแปรเก็บชุดคำสั่ง sql
Dim comTmp As OleDbCommand = New OleDbCommand 'ตัวแปรออบเจ็กต์ OleDbCommmand ที่ชื่อว่า comTmp
Dim drTmp As OleDbDataReader 'ตัวแปรออบเจ็กต์ OleDbDataReader ที่ชื่อว่า drTmp
Dim tmpMember_id As Integer = 0 'ตัวแปรเก็บรหัสสมาชิกที่ได้
'สร้างชุดคำสั่ง SQl เพื่อเลือกข้อมูล 1 เร็คคอร์ดล่าสุด จากตาราง Member
sqlTmp = "SELECT TOP 1 Member_id FROM Member ORDER BY Member_id DESC"
Try 'ให้ทำ
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp 'ใช้ชุดคำสั่ง sql ที่เก็บอยู่ในตัวแปร sqlTmp
.Connection = Connection 'ใช้การเชื่อมต่อของออบเจ็กต์ Connection
drTmp = .ExecuteReader 'รันชุดคำสั่ง SQl เก็บผลการทำงานไว้ที่ drTmp
drTmp.Read() 'อ่านข้อมูลในออบเจ็กต์ drTmp
'อ่านข้อมูลจากฟิลต์ Member_id เก็บไว้ในตัวแปร tmpMember_id
tmpMember_id = CInt(drTmp.Item("Member_id"))
drTmp.Close() 'ปิดออบเจ็กต์ drTmp
tmpMember_id = tmpMember_id + 1 'เพิ่มค่าอีก 1
'แสดงรหัสสมาชิกการที่สร้างได้
txtmember_id.Text = tmpMember_id.ToString("0000")
End With
Catch ex As Exception 'ในกรณีที่ไม่มีจำนวนเร็คคอร์ดอยู่เลย
txtmember_id.Text = "0001" 'กำหนดรหัสสมาชิกเท่ากับ 0001
End Try
End Sub
|
 |
 |
 |
 |
Date :
2010-07-08 23:38:17 |
By :
adunafah |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุงคุณ Dek-Doi มากๆๆๆเรยนะคะ ^^
|
 |
 |
 |
 |
Date :
2011-02-10 00:05:53 |
By :
อิอิ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ
เข้าใจขึ้นมากๆเลยครับ
ปล.ชอบคำอธิบายมากครับ
|
 |
 |
 |
 |
Date :
2011-07-19 11:49:18 |
By :
Komagi |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยาก ได้โค้ด Run ตัวเลข อัตโนมัติ ที่ เขียน ด้วย ภาษา VB.Net
เช่น รหัสลูกค้า C0001 รหัสต่อ ไป รัน เป็น C0002
มันรันเลข พร้อม ตัว อักษร เลย อะค่ะ ไม่ทราบว่า จะเขียนต้องโค้ด ประมาณ ไหนดีค่ะ
ไม่รู้จะเริ่ม เขียน ยังไง
|
 |
 |
 |
 |
Date :
2011-08-21 22:50:22 |
By :
micky |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
Imports System.Data.SqlClient
Imports System.Data
Partial Class Admin_frmAddCustomerCM
Inherits System.Web.UI.Page
Dim connectdb As New ConnectDB
Dim objConn As New SqlConnection
Dim dtReader As SqlDataReader
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack() Then
Call AutoCM_id()
End If
End Sub
Sub AutoCM_id()
Dim strsql As String = ""
Dim cmd As SqlCommand = connectdb.CreateCommand(strsql)
Dim CumID As Integer = 0
strsql = "SELECT TOP 1 CumCM_id FROM CustomerCM ORDER BY Member_id DESC"
Try
With cmd
.CommandType = CommandType.Text
.CommandText = strsql
.Connection = objConn
dtReader = .ExecuteReader
dtReader.Read()
CumID = CInt(dtReader.Item("CumCM_id"))
dtReader.Close()
CumID = CumID + 1
txtCusID.Text = CumID.ToString("0000")
End With
Catch ex As Exception
txtCusID.Text = "0001"
End Try
End Sub
รบกวนหน่อยนะคะ โค้ดที่หนูเอาไปดัดแปล มันไม่ขึ้นข้อมุลที่มีอยูในฐานข้อมูลอะคะ แล้วก้อไม่ยอมบวกหนึ่ง มันผิดตรงไหนช่วยบอกหนูหน่อยนะคะ
|
ประวัติการแก้ไข 2012-01-11 14:13:31 2012-01-11 15:50:34 2012-01-12 12:50:44
 |
 |
 |
 |
Date :
2012-01-11 13:59:09 |
By :
น้าม นริศรา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากได้ที่เป็น C# บ้างค่ะCode (C#)
อยากได้ code ที่เพิ่มรหัสให้โดยอัตโนมัติลงฐานข้อมูลค่ะ คือว่าไม่ต้องพิมพ์รหัสก็สามารถบันทึกในฐานข้อมูลได้ แล้วเมื่อลบข้อมูลของรหัสนี้ออก และเมื่อเราจะบันทึกใหม่ รหัสที่พิมพ์ใหม่ก็ต้องเป็นรหัสเดิมที่เราลบออกไป แบบว่าให้มันรันเป็นเลขเดิมให้โดยอัตโนมัติ เพราะที่ทำอยู่เมื่อลบรหัสออกไปเมื่อเราพิมใหม่ก็จะรันเป็นหมายเลยรหัสใหม่ให้เลย คืออยากให้ถ้าลบรหัสเดิมออก เมื่อเราจะพิมใหม่ก็ให้รันเป็นรหัสที่เรียงกันให้โดยอัยโนมัติ เช่น
รหัส 01
02
03
04
ที่ทำอยู่จะเป็นแบบว่าถ้าเราลบรหัส 04 ออก เมื่อบันทึกใหม่มันก็จะเป็นรหัส 05 เลยค่ะ
แต่อยากให้เมื่อลบออกไป ถ้าเราจะพิมพ์ใหม่ก็รันให้เป็นรหัสที่เราลบออกไปก่อนค่ะ ค่อยรันเป็นเลขอื่นต่อไป
|
 |
 |
 |
 |
Date :
2012-02-17 17:47:45 |
By :
แอนนา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากรู้แบบความเห็นที่ 10 อีกคนครับ
|
 |
 |
 |
 |
Date :
2012-07-05 11:54:38 |
By :
SystemError |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
For i As Integer = 1 To 100
Code As String = String.Format("C{0}", i.ToString("0000"))
Next
เฮ่อ vb
|
 |
 |
 |
 |
Date :
2012-07-05 12:45:01 |
By :
อิอิ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรง I dentity มันเริ่มจากเลขหลักเดียว 
|
ประวัติการแก้ไข 2012-07-05 22:38:48
 |
 |
 |
 |
Date :
2012-07-05 22:37:00 |
By :
เป๋าฮื้อ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากได้แบบ คห.10ครับ ช่วยหน่อยครับ
|
 |
 |
 |
 |
Date :
2015-07-31 22:26:14 |
By :
koisuke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
insert into test
SELECT top 1
CONCAT( SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ', c + (idx=9999) - 64,1), SUBSTRING(idx + 10001,2) ),
'valuefield1', 'valuefield2','......'
FROM (
select ASCII('A') as c, 0 as idx union all
select ASCII(LEFT(max(id),1)), RIGHT(max(id),4)*1 FROM test
) as tmp
order by tmp.c desc, tmp.idx desc
ปล.การเขียนแบบนี้ จำเป็นต้อง ตรวจสอบ การอ้างอิง fk ให้ดีนะครับ ถ้าสามารถ ลบ เรคคอร์ดได้
code A0001 - Z9999 นอกเหนือจากนี้ โมเอาเองนะครับ
พอดีไม่มี sql server ไว้เทสต์ ไม่ได้ทดสอบ นะครับ
|
ประวัติการแก้ไข 2015-08-01 20:55:35
 |
 |
 |
 |
Date :
2015-08-01 11:46:17 |
By :
NewbiePHP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|