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 แบบวนลูป เมื่อเจอเครื่องหมายหรือสัญลักษณ์



 

สอบถามเกี่ยวกับการ insert แบบวนลูป เมื่อเจอเครื่องหมายหรือสัญลักษณ์

 



Topic : 099581



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



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




สอบถามเกี่ยวกับการ insert ลง mySQL ครับ

ตัวอย่างข้อมูล

aaa | bbb | ccc | eee | ddd | ppp |


ทำอย่างไงถึงจะสามารถ insert ข้อมูลให้เป็นแถวใหม่ได้ เมื่อเจอเครื่องหมาย |


insert into tb_test values('aaa')
insert into tb_test values('bbb')
insert into tb_test values('ccc')
insert into tb_test values('eee')
insert into tb_test values('ddd')
insert into tb_test values('ppp')


ควรจะใช้ฟังก์ชันในการตัดคำ หรือ การวนลูปแบบไหนถึงจะสามารถทำได้ครับ

ปล. ส่งข้อมูลมาจากฟอร์ม submit


รบกวนด้วยครับ

ขอบคุณครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-08-25 18:55:22 By : lengza View : 750 Reply : 2
 

 

No. 1



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

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

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

แบบง่ายที่สุดคือใช้ explode() ครับ

Code (PHP)
$data = 'aaa | bbb | ccc | eee | ddd | ppp |';
$data = explode('|', $data); // ทำให้ $data เป็น array โดยใช้ | เป็นตัวแบ่ง


จากข้อมูลข้างบนจะได้ array ที่มีสมาชิก

'aaa '
' bbb '
' ccc '
' eee '
' ddd '
' ppp '
และ
''

สังเกตว่าจะมีช่องว่างติดมาด้วย หากคุณไม่ต้องการเอาช่องว่าง คุณต้องวนลูปเพื่อ trim() สมาชิกทุกตัว


Code (PHP)
foreach ($data as $value) {
    $value = trim($value);
}


แต่ก็จะมีตัวสุดท้ายที่เป็นข้อมูลว่าง '' เราสามารถเอามันออกได้ด้วย array_filter()

Code (PHP)
$data = array_filter($data);


แต่ array_filter() จะเอาสตริง '0' ออกไปด้วย หากมีค่า '0' อยู่ใน array ค่า '0' จะไม่ถูกบันทึก
ดังนั้นเราควรเช็คให้แน่ชัดว่ามันเป็นสตริงว่างจริงหรือไม่

และในการ INSERT เราสามารถ INSERT หลายๆ แถวพร้อมกันใน query เดียวด้วย syntax


Code (SQL)
INSERT INTO `table` VALUES (row1),(row2),(row3),(row4),...


ดังนั้นเราจึงควรสร้าง query ไว้ก่อนที่จะ INSERT

โค้ดทั้งหมดก็จะประมาณนี้


Code (PHP)
$data = 'aaa | bbb | ccc | eee | ddd | ppp |';

$data = explode('|', $data); // ทำให้ $data เป็น array โดยใช้ | เป็นตัวแบ่ง

$values = array();

foreach ($data as $value) {
    $value = trim($value);
    // หากเอาช่องว่างออกแล้วเป็นสตริงว่าง ให้ข้ามไปเลย
    if ($value === '') {
        continue;
    }
    // สร้าง SQL ของ VALUES เช่น หากค่าเป็น 555 จะได้ SQL ('555')
    // และเพิ่มเข้าไปเป็นสมาชิกของ array $values
    $values[] = "('" . mysql_real_escape_string($value) . "')";
}

// หากมีค่าที่จะ INSERT จริงๆ (ไม่ใช่ array ว่างเปล่า) ก็ให้ทำการ INSERT
if (!empty($values)) {
    $values = implode(',', $values); // รวม SQL ทุกแถวเข้าด้วยกันด้วย ,
    mysql_query("INSERT INTO `table` VALUES $values");
}









ประวัติการแก้ไข
2013-08-25 19:21:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-25 19:19:47 By : phpinfo()
 


 

No. 2



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



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




ขอบคุณมาก ๆ ครับ

ผมขอลองดูก่อน



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-25 19:23:13 By : lengza
 

   

ค้นหาข้อมูล


   
 

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