สอบถามเรื่องการ GENID เองโดยใช้ php เขียนครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่องการ GENID เองโดยใช้ php เขียนครับ

สอบถามเรื่องการ GENID เองโดยใช้ php เขียนครับ
ผมมีปุ่มอยู่ปุ่มหนึ่ง ผมต้องการที่จะกดปุ่มแล้วให้มัน GEN รหัสตามอ้างอิงของตารางในฐานข้อมูลครับ
ว่าตอนนี้มีรหัสเท่าไร และการ gen รหัสครั้งต่อไป รหัสจะต้องเรียงกันไป
อย่างเช่น ถ้าไม่มีรหัสเลย มันกะจะนับเป็น S00001,S00002,..... ไปเรื่อยครับ 
แต่ถ้ามันมีรหัสอยู่แล้วก็ให้มัน GEN ต่อจากรหัสเดิมได้เลยครับ
เช่น S00010,S00011,............. แบบนี้ครับ
พอจะแนวทางในการศึกษาและทำไหมครับ
ผมลองทำแล้วแต่ก็ยังไม่ได้เลยครับ
รบกวนพี่นิก
ช่วยแนะนำทีนะครับ
ขอบคุณครับ


Maxtri 118.173.238.xxx 01-09-2016 11:18:10

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ทำได้หลายวิธีขึนกับการประยุกต์ เช่น
สร้างตาราง tbl_genid ในฐานข้อมูล กำหนดฟิลด์ genid ดังนี้
-เป้น int กำหนดขนาดตามต้องการ เช่น 7
-เป็น primary
-เป็น auto increment
 
ประมาณนี้
 
--
-- Table structure for table `tbl_genid`
--

CREATE TABLE `tbl_genid` (
  `genid` int(7) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_genid`
--
ALTER TABLE `tbl_genid`
  ADD PRIMARY KEY (`genid`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_genid`
--
ALTER TABLE `tbl_genid`
  MODIFY `genid` int(7) NOT NULL AUTO_INCREMENT;
 
 
จากนั้นทุกครั้งที่เราเพิ่มข้อมูลในตาราง tbl_genid 
ค่า genid จะเพิ่มขึ้นเรื่อยๆ ไม่ซ้ำกัน จาก 1 .. 2 .. 3 ...
เราก็คิวรี่ค่า insert_id มาแล้วเอามาจัดรูปแบบเป็น GENID ที่ต้องการ
 
ตามตัวอย่างโค้ดนี้เป็นแนวทาง

ไฟ์ dbconnect.php

<?php  
$mysqli = new mysqli("localhost", "root","","test");  
/* check connection */  
if (mysqli_connect_errno()) {  
    printf("Connect failed: %sn", mysqli_connect_error());  
    exit();  
}  
if(!$mysqli->set_charset("utf8")) {  
    printf("Error loading character set utf8: %sn", $mysqli->error);  
    exit();  
}  


ไฟล์ตัวอย่าง

<?php
include("dbconnect.php");
if(isset($_POST['btn_genid'])){
	$mysqli->query("
		INSERT INTO `tbl_genid` (`genid`) VALUES (NULL);
	");	
	$insertID = $mysqli->insert_id;  
	$genID="S".str_pad($insertID,7,"0",STR_PAD_LEFT);
	echo $genID;
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form name="form1" method="post" action="">
  <input type="submit" name="btn_genid" id="btn_genid" value="Gen ID">
</form>
</body>
</html>


ninenik 180.183.142.xxx 01-09-2016
 ความคิดเห็นที่ 2


ตามรูปภาพครับ
คือพอผมกดปุ่ม GENID มันก็จะ GEN รหัสโดยอ้างอิงถึงตารางในฐานข้อมูลครับ
ว่ามีรหัสอะไรแล้ว แล้วพอกดปุ่ม มันก็จะ GENID ถัดไปออกมาให้เลยครับ

Code ที่พี่นิกให้มาสามารถนำไปประยุกต์ใช้กับแบบนี้ได้เปล่าครับ

ขอบคุณครับ


maxtri 118.173.238.xxx 01-09-2016 14:25
 ความคิดเห็นที่ 3
  โค้ดที่แนะนำจะเป็นแนวทาง สามารถประยุกต์ได้ หรือไม่ขึ้นอยู่กับความเข้าใจ

ถ้าลำดับการทำงานได้ เราก็พอจะกำหนดรูปแบบตามต้องการได้ ต้องลองดู


ninenik 180.183.142.xxx 01-09-2016
 ความคิดเห็นที่ 4
ครับผม
ขอบคุณครับ
ผมจะลองนำไปประยุกต์ใช้ครับ


maxtri 118.173.238.xxx 01-09-2016 15:13
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ