WWW.CODE-FATHER.COM ยินดีต้อนรับทุกๆท่าน

บทความทั้งหมด วิธีใช้งานโปรแกรม PHP CODE FATHER V.2016 Register - ลงทะเบียนโปรแกรม Contact Us - ติดต่อเรา About Us - เกี่ยบกับเรา รับเขียนเว็บ โปรเจ็ค PHP vs MySQL
ติดต่อเข้ามาได้เลยนะครับ ราคากันเอง ไม่เคยทิ้งงาน
งานแก้ งานด่วน งานเร่งสอบถามกันก่อนได้ครับผม...
106605Code Login Logout Php การทำระบบล๊อกอิน ล๊อกเอ้า และป้องกันการลักไก่ แบบละเอียดที่สุด 40326Code Send Email by PHP การส่งอีเมล์ด้วย พีเอสพี 42855Captcha Security Code PHP ใส่รหัสยืนยันก่อนโพสป้องกันการสแปมเว็บเราดีกว่า 72299Php Code Insert to Mysql การเพิ่มข้อมูลใหม่เข้าสู่ฐานข้อมูล 48482PHP CODE FATHER โปรแกรมสร้างโปรเจ็ค PHP + Mysql สร้างโค้ดโปรแกรม php mysql insert update add edit delete ง่ายๆ 34954Download Free Program Php Code Father V.2010 ดาวน์โหลดโปรแกรมฟรี 32847ดาวน์โหลดคู่มือ วิธีใช้งานโปรแกรม Php Code Father V.2010 60824Function Confirm Delete JavaScript การยืนยันก่อนลบข้อมูล ง่าย ๆ แต่สำคัญ 32714PHP Function ECHO Exit ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด 11052PHP CODE FATHER V.2010 ตัวเต็ม Full ขั้นตอนการสมัครและรายละเอียดการลงทะเบียนใช้งานโปรแกรม 84127Code Search PHP In Mysql Database By Fields การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ 29515แก้ปัญหาการใช้งานฟังก์ชั่น substr ใน php ตัดข้อความภาษาไทยแล้วกลายเป็นภาษาต่างดาว 38424การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai 47577PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย 43058การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้ 39881การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้ 55194Php Code Upload File การอัพโหลดไฟล์และการตรวจสอบประเภทของไฟล์ภาพและอื่น ๆ 15640 Single Quote SQL Query Insert update แก้ปัญหาเวลาข้อมูลที่มีเครื่องหมายฟันเดี่ยว (single quote) แล้วไม่ได้ ไม่ผ่าน 14302การใช้งานฟังก์ชั่น substring() ใน javascript และการตรวจสอบจำนวนเงินกับการสั่งซื้ออัลบั้มออนไลน์ 124043คำสั่ง sql Select from Where ,Like ,Order By ที่จำเป็นต้องใช้และต้องใช้บ่อย ๆ 51399code update php to mysql database คำสั่งปรับปรุงข้อมูลในฐานข้อมูล 48568php function number_format ใส่จุดทศนิยมและเครื่องหมายคอมม่าให้ตัวเลข เงิน 42805ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่ 55857Code Redirect URL ด้วย php และ javascript การส่งผู้ใช้ไปหน้าที่เราต้องการ 54495ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date 98419Code PHP Popup การป๊อปอัพหน้าต่างใหม่โดยใช้ Javascript 54146เทคนิค...การทำให้ Textbox กรอกหรือป้อนได้เฉพาะตัวเลขด้วย Javascript ง่ายๆ 46244Step 1 สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 38152เทคนิคการแสดงและซ่อน div, table และอื่น ๆ ด้วย Javascript Show and Hide DIV or TABLE 52942Step 2 ฐานข้อมูล สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 91962ปัญหาการแสดงผลตารางบน Internet Explorer เพี้ยน Table ie7 Error 23251การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว 37417วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL 36249แปลงตัวเลขให้เป็นตัวอักษรภาษาไทย PHP Code Thai BathText 39267php easy calculator เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร 33132php easy calculator with Ajax เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร ภาคต่อ 186716ทำระบบล๊อกอินอย่างง่าย ด้วย PHP Login with Mysql Data Base 13761Step 3 โค้ดเว็บบอร์ดแบบง่าย ๆ พร้อมใช้งาน PHP Webboard Script 43968โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax vs Code PHP select Provicne Umphur District 77761(ภาคต่อ แก้ไข อัพเดท) โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax Code PHP select Provicne Umphur District with Edit 28455แก้ปัญหาPHP อัพขึ้น Host แล้วใช้งานไม่ได้ ไม่ส่งค่าตัวแปรแต่ที่เครื่อง localhost ใช้ได้ 164872PHP Random Number+String สุ่มตัวเลขตัวอักษรหรือตัวหนังสือไม่ซ้ำอย่างง่าย 128774โค้ดระบบแบ่งหน้า เพิ่ม ลบ แก้ไข และค้นหาตามรายชื่อฟิลด์ในหน้าเดียว 81319ติ๊กถูก Checkbox ยอมรับเงื่อนไขแล้วปุ่ม submit ขึ้นให้คลิก 20315แก้ปัญหา warning session_start() function.session-start cannot send session cache limiter 37764การใช้งานโปรแกรม php code father สร้างไฟล์ php แสดงข้อมูล เพิ่ม ลบ แก้ไข ค้นหา แบ่งหน้า 347163ฝึกเขียนโค้ด php โปรแกรมจำลองการถอนเงินจากตู้ ATM 204012สอนเขียน PHP แบบฮาๆ ตอน 1 ติดตั้งโปรแกรมพร้อมใช้งานเบื้องต้น 73264การแบ่งหน้า Boostrap Pagination PHP+MySql ง่าย ๆแบบจับมือทำ 29315Easy Code PHP Check Device โค้ดตรวจสอบประเภทอุปกรณ์ที่กำลังใช้งานเว็บไซต์ 10767สอน PHP สร้าง Webboard ตอน 1 สร้างฐานข้อมูล Mysql 14491สอน PHP Webboard ตอน#2 เชื่อมต่อฐานข้อมูล Connect Mysql DataBase 198907สอน PHP Webboard ตอน#3 ระบบล๊อกอิน Login เข้าสู่ระบบ 30139มาแล้วครับ PHP CODE FATHER V.2016 ร่วมกับ Boostrap 105462วิธีแก้ปัญหา Xampp เข้า phpMyadmin ไม่ได้ 245สอนเขียนโค้ด PHP แบบจับมือทำ Ep.1 เชื่อมฐานข้อมูลและแสดงผลข้อมูล 25417PHP เทคนิคการ Update ข้อมูลทีละหลาย ๆ รายการ 9783การติดตั้งและใช้งาน Appserv กับ Xampp ในเครื่องเดียวกัน
1# ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่
ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่

ปัญหาของผู้เริ่มต้นศึกษาการเขียนหรือการพัฒนาเว็บไซต์ด้วย ภาษา php อีกอย่างนึง
ที่ยังไง ๆ ก็ต้องได้พบ ได้เจออย่างหลีกเลี่ยงไม่ได้ ตัวผมเองก็เช่นกัน กว่าจะผ่านจุดนั้นมาได้
ก็ต้องใช้ความพยายามในการค้นหา และทดลองทำตามตัวอย่างที่รุ่นพี่ ๆ โปรแกรมเมอร์เขาได้
บอกไว้

ซึ่งหากเราเข้าใจระบบ หรือกระบวนการทำงานของมันแล้ว มันก็ไม่ใช่เรื่องใหญ่ หรือ เรื่องยากอะไรเลย ขออธิบายแบบตัวอักษรเช่นเคย เพื่อจะได้จินตนาการไปพร้อม ๆ กันครับ

เพื่อไม่เป็นการเสียเวลา เข้าเรื่องเลยละกันนะ...

บางคน (โดยเฉพาะมือใหม่) ที่ยังออกแบบดาต้าเบส หรือ ฐานข้อมูลไม่ค่อยเก่งนั้น
ส่วนมากจะสร้างรหัส (ไพมารี่คีย์) ให้เป็นแบบ auto_number โดย เลือกประเภทของฟิล์เป็นแบบตัวเลข INT และกำหนดค่าเป็น auto_increment เพื่อให้ฟิลด์หลักนั้น เป็นแบบ autoid นั่นเอง

ซึ่งมันก็ไม่ได้ผิดอะไร เวลาเพิ่มข้อมูลก็ไม่ต้องไปยุ่งยากกำหนดค่าให้มัน เช่น
Insert into std Set std_name='code father'
จากโค้ดจะสังเกตุได้ว่า ไม่ได้มีการกำหนดค่าหรืออ้างถึง std_id แต่อย่างใด เนื่องจากฟิลด์ std_id นั้น ได้กำหนดค่าให้เป็นแบบ auto number แล้ว เวลาเพิ่มข้อมูลใหม่ จึงไม่จำเป็นต้องกำหนดค่า หรือ เอามาเกี่ยวข้องแต่อย่างใด ก็สามารถเพิ่มข้อมูลใหม่เข้าสู่ database ได้เช่นกัน

แต่ปัญหาที่ตามมาก็คือ ในฐานข้อมูล ค่าในฟิลด์ std_id นั้นจะเป็นค่าของตัวเลขจำนวนเต็ม (INT)
ซึ่งเวลาแสดงผลให้ผู้ใช้งานดูจะไม่สวยงามเท่าใดนัก ทำให้บางครั้งต้องใช้ฟังก์ชั้นสำหรับจัดการรูปแบบให้กับตัวเลขนั้นอีกที เช่น

1   ต้องการแสดงผลเป็น 00001
12 ต้องการแสดงผลเป็น 00012

ฟังก์ชั่นที่ใช้เปลี่ยนค่าตัวเลขให้เป็นรูปแบบตามที่ต้องการข้างบนก็ ตามนี้ครับ

sprintf("%05d",$std_id) // หากต้องการ 3 ตำแหน่งก็เปลี่ยน จากเลข 5 เป็นเลขที่ต้องการได้เลย

************ จบแบบเบสิค **************

มาต่อกันกับการสร้างเลขที่ auto id แบบที่ผมตั้งใจจะนำเสนอกันดีกว่า
มันก็คือการไปเลือกเอาค่า id ที่มากที่สุดที่อยู่ในฐานข้อมูลมา จากนั้นก็บวกเพิ่มเพื่อสร้างเป็นรหัสใหม่ โดยมีโค้ดง่าย ๆ ตามนี้ครับ

$new_id =mysql_result(mysql_query("Select Max(std_id)+1 as MaxID from  std"),0,"MaxID");//เลือกเอาค่า id ที่มากที่สุดในฐานข้อมูลและบวก 1 เข้าไปด้วยเลย
            if($new_id==''){ // ถ้าได้เป็นค่าว่าง หรือ null ก็แสดงว่ายังไม่มีข้อมูลในฐานข้อมูล
                $std_id="00001";
            }else{
                $std_id=sprintf("%05d",$new_id);//ถ้าไม่ใช่ค่าว่าง
            }

หลังจากนี้ ก็เอาค่าตัวแปร std_id ไปใช้งานได้แล้วครับ จากโค้ดจะเห็นว่า ไม่ได้มีอะไรยุ่งยากอะไรเลย สามารถเอาไปใช้งานได้จริง (ผมเองก็ใช้แบบนี้อยู่ประจำ) ที่ต้องเปลี่ยนก็มีเพียงแค่ 2 จุดคือ ที่ทำสีน้ำเงินไว้ แค่นั้นเอง

*** ตัวอย่างโค้ดข้างบนนี้ สำหรับ กรณีที่ฟิลด์ std_id เก็บไว้แบบตัวเลข เช่น 1, 2 หรือ 00001, 00002 ฯลฯ เป็นต้น เท่านั้นนะครับ ใช้ไม่ได้สำหรับฟิล์ดที่เก็บแบบตัวเลขผสมกับตัวอักษร เช่น S0001, ID0001 ฯลฯ เป็นต้น

******************************************
คำถามต่อมาก็คือ แล้วถ้าฟิลด์ std_id เก็บค่าแบบ ตัวเลขผสมตัวอักษรหล่ะ จะทำไงดี
ปัญหานี้ก็ไม่ใช่เรื่องใหญ่ครับ เราก็ต้องเพิ่มคำสั่งเล็ก ๆ น้อย ๆ อีก ดังนี้

สมมุติว่าฟิลด์ std_id มีข้อมูลอยู่ 10 รายการ คือ S0001 , S0002 ...........S0010
เราก็เพิ่มคำสั่งตัดคำ คือ ตัดตัวอักษรออกก่อน ในที่นี้คือ ตัว S นั่นเอง

$new_id =mysql_result(mysql_query("Select Max(substr(std_id,-4))+1 as MaxID from  std"),0,"MaxID");//เลือกเอาค่า id ที่มากที่สุดในฐานข้อมูลและบวก 1 เข้าไปด้วยเลย
            if($new_id==''){ // ถ้าได้เป็นค่าว่าง หรือ null ก็แสดงว่ายังไม่มีข้อมูลในฐานข้อมูล
                $std_id="S0001";
            }else{
                $std_id="S".sprintf("%04d",$new_id);//ถ้าไม่ใช่ค่าว่าง
            }

จะสังเกตุว่าส่วนที่เพิ่มเข้ามาก็คือ คำสั่ง substr(std_id,-4) ที่เดียวเท่านั้นเอง

เป็นอย่างไรกันบ้างครับ พอที่จะเห็นภาพไหมว่าที่จริงแล้วมันไม่ได้มีอะไรเลยจริง ๆ
ง่ายนิดเดียวเอง ใคร ๆ ก็ทำได้...