จะเขียน insert sql รูปแบบนี้ยังไงเหรอคะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา จะเขียน insert sql รูปแบบนี้ยังไงเหรอคะ

จะเขียน insert sql รูปแบบนี้ยังไงเหรอคะ

คือต้องการ insert ID ลง DB อ่ะค่ะ โดยมีเงื่อนไขว่า

- ID ที่จะ insert จะมี ID ที่เหมือนกัน 2 แถวเท่านั้น

- หากตรวจสอบใน DB แล้วมี ID เก็บไว้แค่แถวเดียว (รันตามค่าล่าสุด)  ให้ข้อมูลที่จะ Insert เข้าไปใหม่นี้มีค่า ID เท่ากับ ID ก่อนหน้า

  เช่น สมุมติใน DB มี ID ที่เก็บไว้อยู่ คือ 1 ซึ่งมีอยู่ข้อมูลเดียว เพราะฉะนั้น ค่าที่จะ Insert เข้าไปใหม่นั้น ID จะต้องเป็น 1 อีกเช่นกัน รวมทั้งหมดจะมี ID=1 ทั้งหมด 2 แถว

- หาก ID มีซ้ำกันครบ 2 แถวแล้ว ID ที่จะใส่เข้าไปใหม่จะเพิ่มขึ้น ไปเรื่อยๆ จามลำดับ 2 3 4..

EX. เมื่อบันทึกแล้วข้อมูลจะออกมาลักษณะนี้อ่ะค่ะ

ID           name

1             anna

1             john

2             jane

2             anny

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

ไม่ทราบต้องเขียน Code หรือคำสั่ง sql ประมาณไหนเหรอคะ
 



Atomy_mink 58.8.76.xxx 27-09-2010 16:00:13

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

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


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


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

 ความคิดเห็นที่ 1
<?php
$id_insert=null;
$q="SELECT count(ID),ID FROM table GROUP BY ID ORDER BY ID DESC LIMIT 1 ";
if(mysql_result(mysql_query($q),0,0)==1){
	$id_insert=mysql_result(mysql_query($q),0,1);
	// คำสั่ง sql insert ข้อมูลตามต้องการ
}else{
	$id_insert=mysql_result(mysql_query($q),0,1);
	$id_insert+=1;
	// คำสั่ง sql insert ข้อมูลตามต้องการ
}
?>

 



Ninenik 124.120.7.xxx 28-09-2010
 ความคิดเห็นที่ 2

ขอถามหน่อยค่ะ ไม่เข้าใจรูปแบบตรงนี้น่ะค่ะ

 

mysql_query($q),0,1 มันหมายความว่ายังไงเหรอค่ะ



atomy_mink 58.8.72.xxx 28-09-2010 12:37
 ความคิดเห็นที่ 3

 เป็นส่วน ของ mysql_result(mysql_query($q),0,0)

 
แยกออกมา ได้
$qr=mysql_query($q);
mysql_result($qr,0,0)  // นับเริ่มต้นจาก 0
จะได้ ผลลัพธ์แถวที่ 1 คอลัมที่ 1 
0 ตัวแรกคือแถว 0 ตัวที่สองคือคอลัมน์
 
จากตำสั่ง sql
$q="SELECT count(ID),ID FROM table GROUP BY ID ORDER BY ID DESC LIMIT 1 "; 
จะได้ผลลัพธ์ 2 คอลัมน์ คือ 
count(ID) =  จำนวน ID
ID = ค่า ID
 
if(mysql_result(mysql_query($q),0,0)==1){  หมายถึง ถ้า จำนวน ID == 1 
$id_insert=mysql_result(mysql_query($q),0,1);  // เอาค่า ID นั้นเดิมไปบันทึก
 
}else{ ถ้ามีมากกว่าหรือเท่ากับ 2
$id_insert=mysql_result(mysql_query($q),0,1);  
$id_insert+=1;  
เอาค่า ID นั้นเดิม บวก 1 ไปบันทึก


Ninenik 27.130.56.xxx 28-09-2010
 ความคิดเห็นที่ 4

ขอบคุณมากๆค่ะ



atomy_mink 58.8.72.xxx 28-09-2010 13:18
1






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