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 > insert ต้องการรวมชื่อใน database ที่ซ้ำให้เป็นจำนวน และเพิ่มตารางใหม่ถ้าไม่ซ้ำ



 

insert ต้องการรวมชื่อใน database ที่ซ้ำให้เป็นจำนวน และเพิ่มตารางใหม่ถ้าไม่ซ้ำ

 



Topic : 085536

Guest




database

คือผมต้องการมีการรวมชื่อ artist ที่ซ้ำกันให้เป็นจำนวน totaltracks ตัวอย่างรูป aaaaaaa มี 2 บรรทัด ผมจึงอย่างให้มันรวมกันเป็นบรรทัดเดียว แล้วจำนวน จำนวน totaltracks เป็น 2 ครับ แต่ถ้าผมเพิ่มชื่อที่ไม่ซ้ำ ให้เพิ่มบรรทัดใหม่ครับ


Code (PHP)
$insert3 = mysql_query("INSERT INTO artists (artist, totaltracks) VALUES ('".escape($artist)."', '".escape(totaltracks+1)."')");


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



Tag : PHP, MySQL, Linux







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-10-17 13:26:44 By : มือใหม่php View : 2083 Reply : 12
 

 

No. 1



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



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


เช็ค ค่าที่ซ้ำกัน ถ้าซ้ำ ให้อัพเดจ totaltracks +1
ถ้าไม่ซ้ำให้ INSERT.
คงประมาณนี้ ครับ
ใช่ที่ต้องการหรือเปล่า..






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 13:33:29 By : saksri555
 


 

No. 2

Guest


ในส่วน totaltracks ให้ +1 ทุกครั้งที่เพิ่มข้อมูลครับ

ถ้า aaaaaaa ซ้ำ ไม่ต้องเพิ่มบรรทัดใหม่ totaltracks ก็จะ +1 ต่อไป
ถ้าไม่ซ้ำก็เพิ่มบรรทัดใหม่ เหมือน bbbbbb โดยเริ่มจาก 1 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 13:38:19 By : มือใหม่php
 

 

No. 3



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

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

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

ใช้ตัวนี้ครับ INSERT DUPLICATE UPDATE ครับ

Go to : MySQL INSERT DUPLICATE KEY UPDATE
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 14:12:38 By : mr.win
 


 

No. 4

Guest


ตอบความคิดเห็นที่ : 3 เขียนโดย : mr.win เมื่อวันที่ 2012-10-17 14:12:38
รายละเอียดของการตอบ ::
ลองเปลี่ยนเป็นแบบนี้แล้วครับ

Code (PHP)
$insert3 = mysql_query("INSERT DUPLICATE UPDATE artists (artist, totaltracks) VALUES ('".escape($artist)."', '".escape(totaltracks+1)."')");


ผลคือมันไม่เพิ่มอะไรขึ้นมาเลยครับ นิ่งเหมือนเดิมครับ หรือว่าผมทำไม่ถูกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 14:42:29 By : มือใหม่php
 


 

No. 5



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

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

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

คุณจะต้องทำการ Set Key ด้วยครับ อาจจะทำเป็น UNIQUE KEY ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 15:19:16 By : mr.win
 


 

No. 6

Guest


ตอบความคิดเห็นที่ : 5 เขียนโดย : mr.win เมื่อวันที่ 2012-10-17 15:19:16
รายละเอียดของการตอบ ::
คุณจะต้องทำการ Set Key ด้วยครับ อาจจะทำเป็น UNIQUE KEY ครับ


ขอบคุณครับ แต่ผมไม่เก่งยังงงอยู่ครับ

พอดีไปเจอ https://www.thaicreate.com/community/mysql-insert-duplicate-key-update.html

เลยลองแก้เป็น

Code (PHP)
$insert3 = mysql_query("INSERT INTO artists (artist, totaltracks) VALUES ('$artist', '1') ON DUPLICATE KEY UPDATE totaltracks=totaltracks+1");


ผลเหมือนเดิมครับ มันสร้างบรรทัดใหม่ตลอด ไม่รวมที่ซ้ำกันเลยครับ

คือพื้นฐานผมโง่มากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 15:27:17 By : มือใหม่php
 


 

No. 7



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



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


Quote:
1.อันดับแรกเลยน่ะค่ะ ต้องลบข้อมูลให้หมดก่อนด้วยคำสั่งข้างล่างค่ะ (ให้รันคำสั่งนี้ใน phpmyadmin ในแท็บ sql)
truncate table artists

2.เพิ่ม unique key ให้กับฟิวด์ artist ค่ะ (ให้รันคำสั่งนี้ใน phpmyadmin ในแท็บ sql)
alter table artists add unique(artist)

3.ต่อไปนี้ให้ใช้คำสั่ง insert into ... on duplicate key update.... สำหรับการเพิ่มข้อมูลค่ะ

$sql ="INSERT INTO artists (artist, totaltracks) VALUES ('".escape($artist)."', '".escape(totaltracks+1)."') ";
$sql.="ON DUPLICATE KEY UPDATE totaltracks = totaltracks +1 ";

$insert3 = mysql_query($sql) or die(mysql_error());

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 16:59:42 By : survivor
 


 

No. 8

Guest


ตอบความคิดเห็นที่ : 7 เขียนโดย : survivor เมื่อวันที่ 2012-10-17 16:59:42
รายละเอียดของการตอบ ::
1.อันดับแรกเลยน่ะค่ะ ต้องลบข้อมูลให้หมดก่อนด้วยคำสั่งข้างล่างค่ะ (ให้รันคำสั่งนี้ใน phpmyadmin ในแท็บ sql)
truncate table artists

2.เพิ่ม unique key ให้กับฟิวด์ artist ค่ะ (ให้รันคำสั่งนี้ใน phpmyadmin ในแท็บ sql)
alter table artists add unique(artist)

3.ต่อไปนี้ให้ใช้คำสั่ง insert into ... on duplicate key update.... สำหรับการเพิ่มข้อมูลค่ะ

$sql ="INSERT INTO artists (artist, totaltracks) VALUES ('".escape($artist)."', '".escape(totaltracks+1)."') ";
$sql.="ON DUPLICATE KEY UPDATE totaltracks = totaltracks +1 ";

$insert3 = mysql_query($sql) or die(mysql_error());


ขอบคุณมากเลยนะครับ ทราบซึ้งที่สุดเลยครับ งมมา 2 วันละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 17:18:27 By : มือใหม่php
 


 

No. 9



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

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

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

อิอิ ดีใจด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 17:22:29 By : mr.win
 


 

No. 10

Guest


อยากจะกระโดดกอดเลย ดีใจที่สุด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 17:32:38 By : มือใหม่php
 


 

No. 11



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 17:38:22 By : mr.win
 


 

No. 12



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



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



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-17 20:59:08 By : survivor
 

   

ค้นหาข้อมูล


   
 

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