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,027

HOME > PHP > PHP Forum > คือผมอยากเก็บรหัสสินค้า conncept นี่ครับ ตอนนี้ใน db ผม เก็บรหัสแบบ auto increment อยู่ครับมันจะเป็น 1,2,3 ตามลำดับ



 

คือผมอยากเก็บรหัสสินค้า conncept นี่ครับ ตอนนี้ใน db ผม เก็บรหัสแบบ auto increment อยู่ครับมันจะเป็น 1,2,3 ตามลำดับ

 



Topic : 041050



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



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



ตอนนี้ใน db ผม เก็บรหัสแบบ auto increment อยู่ครับมันจะเป็น 1,2,3 ตามลำดับ แต่ผมต้องการเก็บให้มันเป้นแบบนี้ครับ เช่น รหัสสินค้า P0001,P0002,P0003 แบบนี่อะครับ ช่วยแนะนำ code ผมทีน่ะครับ งงจริงๆ ขอบคุณครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-03-30 19:51:08 By : chonburi f.c View : 1892 Reply : 13
 

 

No. 1



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



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

สร้างคอลัมน์ต่างหากครับ ก่อนบันทึกลงดาต้าเบส ก็ตรวจสอบดูว่าซ้ำรึเปล่า ประมาณนี้ครับ






Date : 2010-03-30 20:20:26 By : kenessar
 


 

No. 2



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



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

ยังไงครับ มี code ตัวอย่างไหมครับ งง
Date : 2010-03-30 20:39:29 By : chonburi f.c
 

 

No. 3



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



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

คงต้องถามกันอีกหน่อยครับว่า รหัสสินค้าที่จะบันทึกลงไปนี่ จะเป็นแบบใหน
1. ให้ลูกค้ากรอกเอง
2. ให้โปรแกรมสร้างขึ้น หรือสุ่มขึ้น
3. หรือให้ตรงกับ product_id แต่ทำเป็นห้าหลักและมีตัวอักษร p อยู่ข้างหน้า
Date : 2010-03-30 20:49:19 By : kenessar
 


 

No. 4



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



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

3. หรือให้ตรงกับ product_id แต่ทำเป็นห้าหลักและมีตัวอักษร p อยู่ข้างหน้า


ทำยังงี่เลยครับ
Date : 2010-03-30 21:34:20 By : chonburi f.c
 


 

No. 5



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



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

อันดับแรกคุณก็ต้องมีฟังก์ชั่นที่แปลงไอดีเป็นรูปแบบที่คุณต้องการก่อน ลองพิจารณาโค้ดข้างล่างนี้ครับ

Code (PHP)
<?php
function convert_id($id , $length)
{
	$str = sprintf("P%0{$length}d",$id);
	return $str;
}
echo convert_id(1,5);
echo "<br />";
echo convert_id(350,5);
echo "<br />";
echo convert_id(999999,5);
?>


มามองดูส่วนบนครับ ผมประกาศว่า function convert_id($id , $length)

ก็คือประกาศฟังก์ชั่นชื่อ convert_id มีพารามิเตอร์สองตัวคือ $id และ $length โดย $id นี่คุณก็ไปรับมาจากเลขไอดีในฐานข้อมูล และ $length คือจำนวนของหลักเลข

ถ้าผมเอาฟังก์ชั่นนี้ไปใช้ก็กรอกอากิวเม้นลงไปให้ครบ สมมุติว่าเลขที่ดึงมาจาก $id = 1 และ จำนวนหลัก = 5 ก็กรอกลงไป convert_id(1 , 5);
มันก็จะทำการแปลงเป็นรูปแบบสตริงที่ต้องการ

ผมจะใช้ฟังก์ชั่น sprintf มาช่วยจัดข้อความตามฟอร์แมท P%0{$length}d โดยที่ {$length} นั้นคือเลขที่รับมาจากพารามิเตอร์ที่ประกาศไว้ สมมุติว่าผมรับค่าเข้ามา 5 ดังนั้นฟอร์แมท จะเป็น P%05d โดยเราจะแยกเป็นสองส่วนคือ
P และ %05d

โดย P นั้นคือตัวอักษรนำหน้า ส่วน %05d หมายความว่าตรงจุดนั้นเป็นข้อมูลชนิดตัวเลข มีขนาดอย่างน้อย 5 หลัก หากมีจำนวนหลักน้อยกว่านั้นให้เอาเลข 0 ใส่แทน ให้นำค่าอากิวเม้น $id ไปใส่แทนตรงตำแหน่งนั้น

แล้วก็รีเทิร์นค่ากลับไปให้จุดที่เรียกใช้ครับ

ดังตัวอย่างเมื่อเอาฟังก์ชั่นนี้ไปใช้
Code (PHP)
echo convert_id(1,5);
echo "<br />";
echo convert_id(350,5);
echo "<br />";
echo convert_id(999999,5);


จะได้ผลลัพธ์
P00001
P00350
P999999
Date : 2010-03-31 10:37:35 By : kenessar
 


 

No. 6



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



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

ขอบคุณครับคุณ kenessar ถ้าทำอย่างที่คุณ kenessar บอก เนี่ยเวลาบันทึกลง db มันจะเป็น P00001 เลยใช่ไหมครับ เพราะตอนนี่ผมเก็บใน db เป็น 1,2,3 ไปเรื่อยๆ ครับ โดยที่ผมใช่รูปแบบ int ตั้งเป็น auto แล้วเวลาแสดงผล ผมใช่คำสั่งนี่ครับ

Code (PHP)
$id=$result['s_id'];
$code=sprintf("P%04d",$id);

Date : 2010-03-31 11:14:15 By : chonburi f.c
 


 

No. 7



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



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

แบบข้างบนนี่ได้เลยครับ
Date : 2010-03-31 12:12:14 By : kenessar
 


 

No. 8



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



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

ยังไม่ได้เลยครับ code ที่คุณ kenessar ให้มาผมเข้าใจว่ามันเป็นการดึงข้อมูลมาแสดงผลหรือแบบไหนครับ

ยังไงช่วยดู code ของผมให้ทีน่ะครับ คุณ kenessar ว่าควรเสริมตรงไหน code ของผมมันยังเป็นตอนที่ผมตั้ง auto increment ใน db อยู่เลยครับ เลยไม่รู้ว่าจะเริ่มยังไงพอ เอา auto increment ออก ขอความกรุณาด้วยน่ะครับ

Code (PHP)
<? 
session_start();



$name=$_POST[name];  
$name2=$_POST[name2];  
$detail=$_POST[detail];  




include ("connect.php"); 



$sql ="insert into tb_type values ('  ','$name','$name2','$detail')"; 
$result =mysql_db_query($dbname,$sql);


if ($result) {
	echo"<meta http-equiv=\"refresh\" content=\"0;URL=type_show.php\" />";
	
} else {	

	echo "<script>alert(' ไม่สามารถเพิ่มประเภทสินค้าได้น่ะครับ ');history.back();</script>";
	echo"<meta http-equiv=\"refresh\" content=\"1;URL=type_show.php\" />";
}
mysql_close();
	
?>

Date : 2010-03-31 15:25:31 By : chonburi f.c
 


 

No. 9



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



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

อ๋อ โค้ดข้างบนนั้น มันแค่แปลงเลข ให้เป็นรูปแบบ p0001 เท่านั้นเองครับ ถ้าจะให้มีรายละเอียดเพิ่มเติม
ยังไงช่วยโพสรูปประเภทข้อมูลของตารางนี้ โดย print screen หน้า โครงสร้างตาราง ใน phpMyAdmin มาอีกซักหน่อยนะครับ จะได้ช่วยคุณ chonburi f.c คิด
Date : 2010-03-31 18:48:33 By : kenessar
 


 

No. 10



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



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

โครงสร้างของ ตารางสายพันธุ์ครับ
โครงสร้าง
รายละเอียดครับ
รายละเอียด

ยังไงก็ขอขอบคุณ คุณ kenessar มากเลยน่ะครับที่ตอบคำถามผม ถ้ายังไงก็ขอ add mail คุณ kenessar ได้ไหมครับเนี่ย
thankyou
Date : 2010-03-31 20:57:16 By : chonburi f.c
 


 

No. 11



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



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

เมลผม [email protected] ครับ

ลองเอาโค้ดนี้ไปครับ

อันนี้เป็น sql script ครับ เอาไว้ใช้ สร้างตารางตัวอย่าง

seed.sql
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง: 01 เม.ย. 2010 น.
-- รุ่นของเซิร์ฟเวอร์: 5.1.41
-- รุ่นของ PHP: 5.3.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- ฐานข้อมูล: `epointdb`
--

-- --------------------------------------------------------

--
-- โครงสร้างตาราง `seed`
--

CREATE TABLE IF NOT EXISTS `seed` (
`s_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`s_code` varchar(5) NOT NULL,
`s_name` varchar(150) NOT NULL,
`s_ename` text NOT NULL,
`s_origin` text NOT NULL,
`s_detail` varchar(150) NOT NULL,
PRIMARY KEY (`s_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- dump ตาราง `seed`
--


เริ่มเขียนโค้ดจากการสร้างไฟล์คอนฟิกดาต้าเบสก่อน

dbconfig.php
<?php
	$dbhost = "localhost";
	$dbuser = "root";
	$dbpass = "";
	$GLOBALS['conn'] = mysql_connect($dbhost,$dbuser,$dbpass);
	
	mysql_select_db("mydatabase" , $GLOBALS['conn']);
	mysql_query("SET NAMES UTF8",$GLOBALS['conn']);
?>


แล้วก็สร้างคลาสไว้จัดการตาราง สายพันธุ์ ในที่นี้ผมตั้งชื่อตารางว่า Seed เลยตั้งชื่อคลาสนี้ว่า Seed จะได้เหมือนกัน

Seed.php
<?php

	/**
	*	Represent Seed Entity.
	*/
	class Seed
	{
		/**
		*	Seed Id.
		*/
		private $id;
		
		/**
		*	Seed Fields Array.
		*/
		private $fields;

		/**
		*	Construction of Seed Class. Initialize method.
		*/
		public function __construct()
		{
			$this->id = NULL;
			$this->fields = array(
				"s_code" => "",
				"s_name" => "",
				"s_ename" => "",
				"s_origin" => "",
				"s_detail" => ""
				);
		}	// end of __construct method.

		/**
		*	Magic method set.
		*	@param $key Key of fields array.
		*	@param $value Value that you want to set properties value.
		*/
		public function __set($key , $value)
		{
			if(array_key_exists($key , $this->fields))
			{
				$this->fields[$key] = $value;
			}
		}	// end of __set method.
		
		/**
		*	Magic method get.
		*	@return (Mixed) Seed Field value.
		*/
		public function __get($key)
		{
			return $this->fields[$key];
		}	// end of __get method.
		
		/**
		*	Get Seed Class By id.
		*	@param $id Specify id of Seed.
		*	@return Seed obj which contain value from exist data in database. return FALSE if has not exist data.
		*/
		public function getById($id = 0)
		{			
			$sql = sprintf("SELECT * FROM Seed WHERE s_id = %d" , $id);
			$result = mysql_query($sql);
			if(mysql_num_rows($result))
			{
				$row = mysql_fetch_assoc($result);
				$obj = new Seed();
				$obj->id = $id;
				$obj->s_code = $row["s_code"];
				$obj->s_name = $row["s_name"];
				$obj->s_ename = $row["s_ename"];
				$obj->s_origin = $row["s_origin"];
				$obj->s_detail = $row["s_detail"];
				return $obj;
			}
			else
			{
				return FALSE;
			}
		}	// end of getById method.
		
		/**
		*	Check Exists Code of Seed.
		* 	@param $code Code of Seed
		*	@return TRUE if has exist code , FALSE if not found.
		*/
		public function isExistsCode($code)
		{
			$sql = sprintf("SELECT * FROM Seed WHERE s_code = '%s'", $code);
			$result = mysql_query($sql);
			if(mysql_fetch_array($result) > 0)
			{
				return TRUE;
			}
			else
			{
				return FALSE;
			}
		}	// end of isExistsCode method.
		
		/**
		*	Save Seed data to database. if not contain id do INSERT , else do UPDATE.
		*	@return TRUE if save successful . FALSE if error occured.
		*/
		public function save()
		{
			if($this->id == NULL)
			{
				$sql = sprintf("INSERT INTO seed(s_name , s_ename , s_origin , s_detail) ".
												 "VALUES('%s' , '%s' , '%s' , '%s' )",
												 $this->fields['s_name'],
												 $this->fields['s_ename'],
												 $this->fields['s_origin'],
												 $this->fields['s_detail']);
				mysql_query($sql);
				if(mysql_affected_rows() > 0)
				{
					$insert_id = mysql_insert_id();
					$code = Seed::getCode($insert_id);
					$sql = sprintf("UPDATE Seed SET s_code = '%s' WHERE s_id = %d", $code , $insert_id);
					mysql_query($sql);
					if(mysql_affected_rows() > 0)
					{
						return TRUE;
					}
					else
					{
						return FALSE;
					}
				}
				else
				{
					return FALSE;
				}
			}
			else
			{
				$sql = sprintf("UPDATE Seed SET s_code = '%s' , s_name = '%s' , s_ename = '%s' , s_origin = '%s' , s_detail = '%s' WHERE s_id = %d",
												 $this->fields['s_code'],
												 $this->fields['s_name'],
												 $this->fields['s_ename'],
												 $this->fields['s_origin'],
												 $this->fields['s_detail'],
												 $this->id);
				mysql_query($sql);
				if(mysql_affected_rows() > 0)
				{
					return TRUE;
				}
				else
				{
					return FALSE;
				}
			}
		}	// end of save method.
		
		public static function getCode($id = 0)
		{
			return sprintf("P%04d", $id);
		}
		
	} // end of Seed Class.
?>


่ส่วนไฟล์นี้ จะเป็นการทดสอบเอาคลาสที่สร้างมาใช้งานครับ

testSeed.php
<pre>
<?php
	require_once("include/dbconfig.php");
	require_once("class/Seed.php");
	
	// Insert date.
	$obj = new Seed();
	$obj->s_name = "name";
	$obj->s_ename = "ename";
	$obj->s_origin = "origin";
	$obj->s_detail = "detail";
	var_dump($obj->save());
	
	// Update data.
	$obj = Seed::getById(7);
	$obj->s_name = "name7";
	$obj->s_ename = "ename";
	$obj->s_origin = "origin";
	$obj->s_detail = "detail";
	var_dump($obj->save());
	
	// Check Exists Code.
	var_dump(Seed::isExistsCode("P0001"));
?>
</pre>

Date : 2010-03-31 23:26:53 By : kenessar
 


 

No. 12



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



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

วิธีใช้

ถ้าจะแอดข้อมูลใหม่ลงไป ก็สร้างออบเจ็คแบบนี้

$obj = new Seed();

ถ้าจะแก้ไขก็เอาไอดีใส่เมธอด Seed::getById($id) สมมุติ id = 1 ก็

$obj = Seed::getById(1);

แล้วก็เซตค่าเลยครับ

$obj->s_name = "name";
$obj->s_ename = "ename";
$obj->s_origin = "origin";
$obj->s_detail = "detail";

แล้วก็บันทึก

$obj->save(); ถ้าบันทึกได้ ก็จะคืนค่า true ถ้าไม่ได้ก็ false (ถ้าอัพเดตซ้ำ มันมักจะ false)

พอบันทึกลงไป เดี๋ยว มันจะเจนโค้ดให้เองครับ

ถ้าจะเปลี่ยนเลขเป็นโค้ดก็ Seed::getCode(1); มันก็จะคืนค่า "P0001" ให้เองครับ

โค้ดดูไม่ยากครับ ลองไปปรับแก้ดูครับ
Date : 2010-03-31 23:32:34 By : kenessar
 


 

No. 13



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



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

ขอบคุณครับผม คุณ kenessar เดี๋ยวผมลองเอาไปทำดูก่อนครับ ผม add mail ไปแล้วน่ะครับ
Date : 2010-04-01 12:48:49 By : chonburi f.c
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คือผมอยากเก็บรหัสสินค้า conncept นี่ครับ ตอนนี้ใน db ผม เก็บรหัสแบบ auto increment อยู่ครับมันจะเป็น 1,2,3 ตามลำดับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่