Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามการเขียน code php +mysql ให้ตัวเลขออโต้รันโดยมี 000นำหน้าครับ



 

สอบถามการเขียน code php +mysql ให้ตัวเลขออโต้รันโดยมี 000นำหน้าครับ

 



Topic : 051383



โพสกระทู้ ( 191 )
บทความ ( 0 )



สถานะออฟไลน์




ถาม code php +mysql ให้ตัวเลขออโต้รันโดยมี 000นำหน้าหน่อยครับ


คือผมได้สร้างdatabase กำหนดให้ id เป็น auto_increment แล้วครับ

เวลาเพิ๋มข้อมูลลงไปมันจะเป็น
1
2
3

อยากให้เป็น0001 พอถึง คอลั้มทีแถวที่10 จะให้มันเป็น 0010 ครับ


ลองเขียนแบบนี้มันไม่เปลี่ยนให้ครับ


<?=$number_preview = substr("000".$row["CustomerID"],-3);?>
<?=$objResult["CustomerID"];?>



Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-09 10:38:30 By : noizeless View : 15047 Reply : 18
 

 

No. 1



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

<?=$number_preview = substr("000".$row["CustomerID"],-3);?>


<?=$number_preview;?>






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 10:41:49 By : pjgunner.com
 


 

No. 2



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ถ้าอยากให้มี 00000 นำข้างหน้า นะครับ เวลาออกแบบ DB ให้ปรับ Attributes เป็น UNZIGNED ZEROFILL มันก็จะเติม 00 ให้อัตโนมัติ โดยเราไม่ต้องไปทำอะไรเลยครับ

ลองดูแล้วจะติดใจ อิอิ ถ้าสร้างไปแล้วก็ไป Edit ได้ครับ โดยไม่มีผลต่อข้อมูล


2222


ประวัติการแก้ไข
2010-11-09 11:01:52
2010-11-09 11:03:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 10:53:06 By : adaaugusta
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

แนะนำให้ใช้เหมือน คห 2 ครับ UNZIGNED ZEROFILL
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:03:37 By : webmaster
 


 

No. 4



โพสกระทู้ ( 83 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Hi5

ขอนำไปใช้บ้างครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:04:51 By : maruk
 


 

No. 5



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ตอบความคิดเห็นที่ : 2 เขียนโดย : adaaugusta เมื่อวันที่ 2010-11-09 10:53:06
รายละเอียดของการตอบ ::
+1 เพิ่งรู้เหมือนกัน

ไม่ทราบว่า มัน fill เฉพาะ ตอนดึงข้อมูลใช่ป่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:05:20 By : pjgunner.com
 


 

No. 6



โพสกระทู้ ( 191 )
บทความ ( 0 )



สถานะออฟไลน์


++แนะนำให้ใช้เหมือน คห 2 ครับ UNZIGNED ZEROFILL

แบบว่า 0000000000มันเยอะไปครับคุณพี่วิน มีวีธีเขียน 000น้อยๆ แบบใหม่ไหมครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:09:12 By : noizeless
 


 

No. 7



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

00000 มันจะเยอะตามจำนวนที่เราจองขนาดครับ

ถ้าเราจองแค่ 4 มันจะออกมา 0001

ถ้าเราจอง 6 มันจะออกมา 000001

ถ้าเราปล่อยว่าง มันจะเป็น 11 จะออกมา 00000000001 น่ะครับ

ควรจองพื้นที่ในการใช้ แต่พอควรครับ ไม่ควรจองเยอะ ถึงคิดว่าจองเผื่อไว้แต่ไม่ควรทำครับ

DB บวม + จะมีค่าเกินความจำเป็นเยอะ

ดูได้จากช่องสุดท้ายครับ ว่าเกินความจำเป็นไปเท่าไหร่


UNZIGNED ZEROFILL


ประวัติการแก้ไข
2010-11-09 11:15:36
2010-11-09 11:16:18
2010-11-09 11:16:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:11:53 By : adaaugusta
 


 

No. 8



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ผมไม่แน่ใจว่า มัน fill ให้ทั้งตอน บันทึก และดึง หรือป่าว
ผมคิดว่า best practice น่าจะ ใช้แบบเดิม

$id = $rs['id']; // ex. 00001

$sql = "SELCT * FROM tbl WHERE id={$id}";

มันจะทำงานได้ถูกต้องหรือป่าว ?
ดังนั้น ลดความสับสนโดยใช้แบบเดิม หรือ (int) $id
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:16:56 By : pjgunner.com
 


 

No. 9



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ตอบความคิดเห็นที่ : 7 เขียนโดย : adaaugusta เมื่อวันที่ 2010-11-09 11:11:53
รายละเอียดของการตอบ ::
จะจองเยอะจองน้อย int มันก็จอง 4 bytes ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:21:52 By : pjgunner.com
 


 

No. 10



โพสกระทู้ ( 191 )
บทความ ( 0 )



สถานะออฟไลน์


อ่อผมลองปรับ ให้int เป็น4 แล้วปรับ Attributes เป็น UNZIGNED ZEROFILL ปรากฎ ว่าได้ผลลัพธ์ในสิ่งที่ต้องการ คือ0001
ตอนแรกที่มี0เยอะ10ตัว เพราะผมกำหนด int เป็น 11ครับ

เข้าใจแล้วครับพี่ แล้วมันจะมีผลอะไรไหมครับพี่ถ้าเราจะมาปรับ0ให้มากขึ้นกรณีเรามีidเยอะขึ้น แบบว่าถ้าต้องการมี0นำหน้าเยอะขึ้น


หมายถึงมาปรับในdatabase ภายหลัง จะมีผลในข้อมูลไหมครับพี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:40:59 By : noizeless
 


 

No. 11



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ไม่มีครับ ปรับได้ตามใจชอบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 11:46:17 By : adaaugusta
 


 

No. 12



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

เอาเป็นว่าแบบนี้นะครับ เผื่อใครอยากจะใช้ แบบเดิม ไม่ต้องเซต ZERO FILL
Code (PHP)
<?=sprintf("%07d", $record['id_ques']);?>


จาก Code ข้างบน

7d คือจำนวนหลัก ที่ต้องการ (7หลัก) ถ้าอยากได้น้อยกว่านี้ ก็เปลี่ยนเอาเช่น 5d , 3d

$record['id_ques'] คือข้อมูลที่เอามาแสดงครับเล่น id ผม = 20

<?=sprintf("%04d", "20");?>

ก็จะได้ 0020 ครับ จบในบรรทัดเดียว เปรี้ยงเดียวจอด !!!! Code สั้นๆ แต่ใช้ได้ดีครับ

ใน DB ก็จะเก็บ 1,2,3,4 แบบเดิม ไม่มี 0000 ข้างหน้าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 12:16:28 By : adaaugusta
 


 

No. 13



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


Code (PHP)
เอิ่ม ... ทำไมไม่ใช้ STR_PAD หว่า


$mynumber = $result['id']; 
#$mynumber = 3;
$mykey = str_pad($mybumber, 5, "0", STR_PAD_LEFT);  #ใส่เลข 0 ข้างหน้ากันหน่อยซิ
$myID = "SV".$mykey ; #ใส่คำว่า SVนำหน้ามันหน่อย
echo $myID; #แสดงผลหน่อย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 12:19:21 By : deawx
 


 

No. 14



โพสกระทู้ ( 875 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ฮ่วยๆ เสือปรากฏตัวทีนี่ มีแนวแฮะ
แล้วแบบไหนดีสุดละทีนี้ (หรือเลือกได้ตามลำบาก เอ้ยตามถนัด )

แล้ว แบบ คห.2 นี่ มันจะใช้ auto increment ได้ไหมครับ(ประมาณว่าขี้เกียจ ดึงค่า max + 1 อ่ะครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 13:15:51 By : peterxp
 


 

No. 15



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ตอบความคิดเห็นที่ : 14 เขียนโดย : peterxp เมื่อวันที่ 2010-11-09 13:15:51
รายละเอียดของการตอบ ::
แล้ว แบบ คห.2 นี่ มันจะใช้ auto increment ได้ไหมครับ(ประมาณว่าขี้เกียจ ดึงค่า max + 1 อ่ะครับ)


ได้ครับ เหมือนเดิมทุกอย่าง

หรือจะใช้แบบ <?=sprintf("%07d", $record['id_ques']);?> ก็ได้ครับ ครือๆกัน

inclement ได้เหมือนเดิมครับ

ต่างกันที่ <?=sprintf("%07d", $record['id_ques']);?> เราจะเซตในสคริปต์ให้มันแสดง แต่ใน DB ยังเก็บเป็นเลขเดียวๆไม่มี 0 ข้างหน้า

แต่ถ้าใช้ ZEROFILL ใน DB จะเก็บ 00 ข้างหน้าตามขนาดที่จองครับ


แต่ทั้งสองแบบสามารถใช้กับ inclement ได้เหมือนกันครับ


ประวัติการแก้ไข
2010-11-09 13:20:56
2010-11-09 13:35:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 13:19:58 By : adaaugusta
 


 

No. 16



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ผมว่า ใช้ substr() อ่านง่ายสุดครับ ^^

งั้นมาลองวัดเบนช์มาร์คกันเลย

Code (PHP)
<?php defined('SYSPATH') or die('No direct script access.');
class Bench_PrependZero extends Codebench {

	public $description = 'ทดสอบการเติม 0 โดยจำกัดจำนวนตัวอักษร ใช้กับการเติม 0 ข้างหน้า id';

	public $loops = 10000;
	
	// จำนวนตัวอักษร
	protected $length = 8;

	public function bench_sprintf()
	{
		static $i = 0;
		$i++;
		
		return sprintf('%0'.$this->length.'d', $i);
	}

	public function bench_str_pad()
	{
		static $i = 0;
		$i++;
		
		return str_pad($i, $this->length.''.'', '0', STR_PAD_LEFT);
	}
	
	public function bench_substr()
	{
		static $i = 0;
		$i++;
		
		return substr('000000000000000000'.$i, -($this->length).''.'');
	}

}

Quote:
*หมายเหตุ ที่ใส่ .''.'' สองฟังชั่นหลัง เพื่อให้ เท่าเทียมกับ sprintf() ที่มี . สองครั้ง


Bench1

Quote:
หลังจาก เอา .''.'' ออกจากสองฟังชั่นหลัง


Bench2

สรุป ความเร็วไม่ต่างกัน เท่าไหร่ แต่ sprintf() ใช้ เมมเยอะสุดครับ


*เพิ่มเติม แต่ถ้าไม่ loop ($loops=1) sprintf() ช้าครับ

Bench3


ประวัติการแก้ไข
2010-11-09 14:18:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 13:58:11 By : pjgunner.com
 


 

No. 17



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

หง่าาาาา เพิ่งรู้ครับ ขอบคุณครับ ที่ใช้ Tool ทดสอบให้ ว่าแต่ Tool ชื่ออะไรครับ อยากได้ๆๆ

ใน OS Mac มีไหมครับ

เอ่อ รวบกวนฝากทดสอบแบบใช้ ZEROFILL ให้หน่อยได้ไหมครับ อยากเห็นว่าเป็นไง


ประวัติการแก้ไข
2010-11-09 14:28:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 14:26:48 By : adaaugusta
 


 

No. 18



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

เขียน เมธอดมาเลยครับ


ปล. ใช้ codebench module ของ Kohana ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 15:17:43 By : pjgunner.com
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการเขียน code php +mysql ให้ตัวเลขออโต้รันโดยมี 000นำหน้าครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่