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 > รบกวนพี่ๆ ช่วยดู code หน่อยนะครับ เรื่องการทำ id คู่อันดับ ครับ



 

รบกวนพี่ๆ ช่วยดู code หน่อยนะครับ เรื่องการทำ id คู่อันดับ ครับ

 



Topic : 109808



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



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




พี่ครับ ผมจะรัน id คู่อันดับนะครับ

อย่างเช่น

PR001 | CT002001
PR002 | CT002001
PR003 | CT002001
PR001 | CT002002
PR002 | CT002002

แต่มันแจ้ง ว่า ไม่สามารถ บันทึกลงฐานข้อมูลได้

code การรัน ID ของผมมีดังนี้ครับ

Code (PHP)
$code = "PR";
	$yearMonth = substr(date("Y")+543, -2);

	//query MAX ID
	$sqlPrice = "SELECT MAX(Pro_ID) AS last_id FROM tb_price WHERE Price_ID = '".$_POST['priceidGet']."' OR Pro_ID = '".$_POST['proID']."'";
	$queryPrice = mysql_query($sqlPrice) or die(mysql_error());
	$totalPrice = mysql_fetch_array($queryPrice);
	$maxId = substr($totalPrice['last_id'], -3); 

	$maxId = ($maxId + 1);
	 
	$maxId = substr("00".$maxId, -3);
	$nextId = $code.$maxId;


q



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-07-09 03:56:39 By : san.saleah View : 1227 Reply : 20
 

 

No. 1



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ที่คุณแสดงอยู๋มันเป็นแค่การ select เอามาใช้งาน

ยังไม่เห็นส่วนที่คุณจะใช้บันทึกลง database เลยครับ และ error ยังไงครับ เอามาให้ดูด้วย






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 06:14:48 By : Chaidhanan
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 06:14:48
รายละเอียดของการตอบ ::
ก่อนที่ผมจะบันทึกลงไป ผมใช้คำสั่งข้างบนในการจะทำไอดีก่อนนะครับ

และ error ดังภาพครับ


21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 06:33:39 By : san.saleah
 

 

No. 3



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



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


มันดูเหมือนมันยังไม่ เพิ่มเลขนับ (Price_ID) ให้กับผมนะครับ ผมควรแก้ อย่างไรครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 06:34:54 By : san.saleah
 


 

No. 4



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

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

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

มันฟ้อง Error ว่า Duplicate entry for key primary แปลเลยก็ มีข้อมูลที่คุณเพิ่มเข้าไปมันมีอยูแล้ว มันซ้ำกันนะ แสดงว่ามีการกำหนดให้ Price_ID หรือไม่ก็ Pro_ID เป็น Primary Key คำถามคือคุณต้องการเก็บแบบไหน ถ้าอยากได้ข้อมูลที่ซ้ำกัน ก็ให้ไปยกเลิกการทำ Primary Key ให้ 2 ฟิลด์นี้เสีย แล้วใช้ฟิดล์อื่นเป็น PK ไม่ก็สร้างขึ้นมาใหม่ ให้มันเป็น auto_increment ไปเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 08:08:51 By : Manussawin
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : Manussawin เมื่อวันที่ 2014-07-09 08:08:51
รายละเอียดของการตอบ ::
ผมยังคงต้องการเก็บแบบ PK ร่วมนะครับ ตอนนี้ปัญหาคือ Price_ID มันเพิ่มสูงสุดได้แค่ 2 คือ PR002 (จากภาพนะครับ) พอจะเพิ่มครั้งที่สาม มันแจ้งว่าซ้ำกันแล้ว ผมควรแก้ไข code อย่างไรดีครับ เพื่อให้มัน +1 ไปเรื่อยๆ นะครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 08:33:14 By : san.saleah
 


 

No. 6



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : san.saleah เมื่อวันที่ 2014-07-09 06:33:39
รายละเอียดของการตอบ ::
ขอโทษนะครับถ้าผมเข้าใจผิด
คุณบอกว่าโค๊ดข้างบนแค่เตรียมไอดี แล้ว เออเร่อร์ที่คุณแสดงมามันเออเร่อร์ตอนไหน
เพราะมันเป็นเออเร่อร์ตอนคุณ insert หรือ update นะครับ มันคงไม่ไช่เออเร่อร์ตอนเตรียมข้อมูลนะครับ

เอาโค๊ดเต็มๆ มาโชว์ครับ ไม่ต้องกลัวว่าใครละลอกหรอกครับ ในนี้มีให้ลอกให้ศึกษาเยอะอยู่แล้วครับ
แบบเห็นแค่บางส่วน ก็มโนได้แค่บางส่วน ถามไปตอบมา มันก็ต้องเห็นจนเต็มแหล่ะครับถึงจะวิเคราะห์ได้หมด
กว่าจะถามจะตอบนานครับ แต่ถ้าเอาโค๊ดมาลงจนหมด สงวนส่วนที่เป็น user password ไว้ ใส่ค่า xxxxx yyyyy ลงไปแทนที่
ก็ไม่มีใครเข้ายุ่งกะโค๊ดคุณได้แล้วครับ และตอนคุณไม่อยู่ บางท่านที่ว่างก็อาจจะวิเคราะห์โค๊ดได้เลย ไม่ต้องรอให้คุณมาตอบ



สำหรับการเอาโค๊ดมาวาง ก็ใส่ชื่อ code ด้วยว่าชื่ออะไร จะได้วิเคราะห์ flow ได้ง่ายขึ้นด้วย
บางคนเอามาไม่มีขื่อ ไฟล์วางไม่ครบ ก็งงกันไปว่า ส่วนไหนที่มันหายไป กว่าจะเจอก็หลายวัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 08:51:30 By : Chaidhanan
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 08:51:30
รายละเอียดของการตอบ ::
ครับพี่ ผมขอโทษด้วยครับ อันที่จริง มันเกิดจากการ จะทำยังไง ให้ เลขไอดี (Pride_ID) มันรันเพิ่มขึ้นที่ละหนึ่งๆ นะครับ สักครู่นะครับ เดี่ยวผมจะกลับไปโพส code ทั้งหมด ครับพี่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 14:36:15 By : san.saleah
 


 

No. 8



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



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


เอาใหม่นะครับ เรื่องของเรื่อง ก็มีอยู่ว่า ผมมีความต้องการ เพิ่มข้อมูลเข้าไปยัง ฐานข้อมูล ซึ่งมีเงื่อนไขว่า จะเป็น id คู่อันดับ เช่น

PR001 | CT002001
PR002 | CT002001
PR003 | CT002001
PR001 | CT002002
PR002 | CT002002

เป็นต้น

แล้วทีนี้ ผมเพิ่มเข้าไปแล้ว สองครั้ง ผ่านโดยไม่มีปัญหา และมาติดปัญหา ในการเพิ่มครั้งที่ 3 นี้แหละครับ คือ มันแจ้งมา

Duplicate entry 'PR002-CT002001' for key 'PRIMARY' มันบอกว่า ซ้ำกัน ซึ่งแน่นอน แสดงว่า Price_ID มันไม่เพิ่มขึ้นให้กับผมอีกต่อไป นะครับ

3

4
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:03:15 By : san.saleah
 


 

No. 9



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ถามนิดครับ Price_ID อักษร PR อยู่หน้า มีอักษรอื่นด้วยไหมครับ


ถ้าไม่มีอักษรอื่นอีก ก็เอามันออกไป ครับ ทำฟีลด์นี้ให้เป็น int autoincrement Primary เก็บเฉพาะตัวเลข
ให้ตัวเลขมันรันเอง ครับ ส่วนอักษร PR ค่อยไปใส่ที่หลังตอนออก Report ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:14:18 By : Chaidhanan
 


 

No. 10



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


อ้อเข้าใจแล้วครับ

รูปภาพ insert into ขอเป็น อักษร ได้ไหมครับ มันเลยหน้า จำไม่ได้ จะได้ก๊อบปีมาเพิ่ม statement คำสั่ง sql ให้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:18:34 By : Chaidhanan
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 15:14:18
รายละเอียดของการตอบ ::
ถ้าทำ ฟิวด์ Price_ID เป็น int auto นี้มันจะรันแบบคู่อันดับตามที่ผมต้องการ ใช่ไหมครับ ? เดี่ยวผมจะลองดูนะครับ ส่วน PR สามารถตัดออกไปได้ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:18:58 By : san.saleah
 


 

No. 12



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 11 เขียนโดย : san.saleah เมื่อวันที่ 2014-07-09 15:18:58
รายละเอียดของการตอบ ::
ไม่ครับ ไม่ต้องแก้แล้ว


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:20:02 By : Chaidhanan
 


 

No. 13



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



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


สักครู่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:53:19 By : san.saleah
 


 

No. 14



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



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


ส่วนนี้จะเป็น code ที่ผมทำเพื่อให้มันรัน Price_ID อัตโนมัติ

Code (PHP)
include ("../../config/config_DB.php");

	$code = "PR";
	$yearMonth = substr(date("Y")+543, -2);

	//query MAX ID
	$sqlPrice = "SELECT MAX(Pro_ID) AS last_id FROM tb_price WHERE Price_ID = '".$_POST['priceidGet']."' OR Pro_ID = '".$_POST['proID']."'";
	$queryPrice = mysql_query($sqlPrice) or die(mysql_error());
	$totalPrice = mysql_fetch_array($queryPrice);
	$maxId = substr($totalPrice['last_id'], -3); 

	$maxId = ($maxId + 1);
	 
	$maxId = substr("00".$maxId, -3);
	$nextId = $code.$maxId;

	$date = date("Y-m-d");
	$status = "1";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:54:44 By : san.saleah
 


 

No. 15



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



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


อันนี้ จะเป็น code ของการ insert ครับ

Code (PHP)
if ($_POST['check'] == "2") {

	$sql = "INSERT INTO tb_price ";
	$sql .="(Price_ID,Pro_ID,Price_UpdateDate,Pro_Stock1,Pro_Stock2,Pro_Stock3,status) ";
	$sql .="VALUES ";
	$sql .="('".$nextId."','".$_POST["proID"]."','".$date."','".$_POST["price1"]."','".$_POST["price2"]."','".$_POST["price3"]."','".$status."')";
	$sqlQuery = mysql_query($sql);

}


ปล. ผมก็อปโค้ด ทั้งหมดแล้ว เอามาว่าง แต่ปรากฏว่า จะโพสไม่ได้ ครับ ไม่ทราบว่าเกิดจากสาเหตุอะไรบ้างครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 15:56:49 By : san.saleah
 


 

No. 16



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



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


ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 15:20:02
รายละเอียดของการตอบ ::
ปิดกระทู้ครับพี่ แก้ได้แล้ว แก้ตามโค้ดด้านล่างเลยครับ ขอขอบคุณสำหรับคำแนะนำครับพี่


Code (PHP)
$sqlPrice = "SELECT MAX(Price_ID) AS last_id FROM tb_price WHERE Pro_ID = '".$_POST['proID']."'";
	$queryPrice = mysql_query($sqlPrice) or die(mysql_error());
	$totalPrice = mysql_fetch_array($queryPrice);
	$maxId = substr($totalPrice['last_id'], -3); 

	$maxId = ($maxId + 1);
	 
	$maxId = substr("00".$maxId, -3);
	$nextId = $code.$maxId;

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 16:34:33 By : san.saleah
 


 

No. 17



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


โค๊ดที่ทำก็โอเคนะครับ

แต่จะมีปัญหาถ้ามีการทำงาน หลายหน้าจอพร้อมๆ กัน

ผมเสนอวิธีนี้ครับ

1 สร้างวิว ไว้ก่อนครับ
CREATE ALGORITHM = UNDEFINED VIEW `MAX_PRICE` AS SELECT SUBSTRING( (SUBSTRING(MAX(Price_ID), 3,3 ) + 1001), 2) mpz, Pro_ID FROM `test` GROUP BY Pro_ID;



2 ข้างล่างนี่เป็นคำสั่งคิวรี่
INSERT INTO test VALUES ( 'randm', 'CT002001', 'เพิ่มเติมตัวแปรอื่นตรงนี้' ); #สังเกตมี เซมิโคล่อนคั่น UPDATE test left join MAX_PRICE on MAX_PRICE.Pro_ID=test.Pro_ID SET Price_ID=CONCAT( 'PR', MAX_PRICE.mpz) WHERE test.Price_ID='randm'


โดยที่
test เปลี่ยนเป็นชื่อตารางของคุณ MAX_PRICE ชื่อวิว ของคุณ randm = ค่าตัวแปร rand(10000, 99999) CT002001 = ตัวแปรกรุ๊ป ของคุณ


แบบนี้จะแก้ปัญหาการทำงานพร้อมกันได้ครับ


ประวัติการแก้ไข
2014-07-09 17:57:58
2014-07-09 17:59:21
2014-07-09 18:00:11
2014-07-09 18:01:57
2014-07-09 18:02:32
2014-07-09 18:04:27
2014-07-09 18:06:36
2014-07-09 18:08:25
2014-07-09 18:14:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 17:55:21 By : Chaidhanan
 


 

No. 18



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



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


ตอบความคิดเห็นที่ : 17 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 17:55:21
รายละเอียดของการตอบ ::
ผิดตรงไหน ยังไงครับ ?

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 18:12:04 By : san.saleah
 


 

No. 19



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 18 เขียนโดย : san.saleah เมื่อวันที่ 2014-07-09 18:12:04
รายละเอียดของการตอบ ::
ไม่ได้ผิดทึ่โค๊ดคุณครับ ผิดที่โค๊ดผมตรงส่วนวิว ผมทำผิดไปนิด

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 18:17:01 By : Chaidhanan
 


 

No. 20



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



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


ตอบความคิดเห็นที่ : 19 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 18:17:01
รายละเอียดของการตอบ ::
ขอบคุณมากๆ ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 19:26:17 By : san.saleah
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนพี่ๆ ช่วยดู code หน่อยนะครับ เรื่องการทำ id คู่อันดับ ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่