Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

demonxiii
PHP Sr. Member
PHP Sr. Member
โพสต์: 54
ลงทะเบียนเมื่อ: 04/01/2009 7:54 pm

Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย demonxiii »

- - ถามอีกแล้ว อย่าพึ่งเบื่อกันน้อ

การ import แบบที่พอกด browse ไฟล์เสร็จ ก็กด OK

แล้วก็จะ Import ข้อมูลจากไฟล์ดังกล่าวเข้าฐานข้อมูล ทำยังไงหรอครับ

ป.ล.

แล้วหาก คีย์หลักซ้ำ จะมีผลอย่างไรครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

PK ซ้ำก็ insert แถวนั้นๆ ลงไปไม่ได้ครับ
แต่ก็มีวิธีเช็คว่า row ไหน insert ลงไปไม่ได้
ถ้า ใช้ InoDB ก็ทำ traction ได้ ว่าจะเอา หรือไม่เอาทั้งหมด ก็ได้

วิธี คือ อ่านไฟล์ .csv ออกมา ทีละบันทัด แล้ว แยกข้อความออกมาด้วย เครื่องหมาย ","
แล้วเอาค่าที่แยกได้ สร้างเป็นคำสั่ง sql ที่ใช้ในการ insert
แล้ว รันคำสั่ง sql ที่ได้มานั้น :-D

ถามได้ครับไม่เบื่อครับ ตอบบ้าง ถามบ้าง ดีครับช่วยๆกันไป :-D
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
demonxiii
PHP Sr. Member
PHP Sr. Member
โพสต์: 54
ลงทะเบียนเมื่อ: 04/01/2009 7:54 pm

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย demonxiii »

แล้วการ Browse เนี่ย ทำไงหรอครับ

แบบกดเลือกไฟล์อะครับ

เหมือนเวลาเรา Import เข้า MYSQL อะครับ ที่กด Browse ไฟล์แล้วกด GO
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ทำให้ Browse ไฟล์ คือเราต้องทำ form ใส่ file field ลงไป
เหมือน ทำ upload ไฟล์ ปกติครับ
แต่พออัพโหลด แล้วให้ทำตาม คำแนะนำข้างบน
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
demonxiii
PHP Sr. Member
PHP Sr. Member
โพสต์: 54
ลงทะเบียนเมื่อ: 04/01/2009 7:54 pm

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย demonxiii »

ถามเพิ่มครับ

ถ้าการ Import โดยไม่ใช้คำสั่ง getcsv มีคำสั่งไหนเอามาใช้ได้ครับ

พอดีผมยังแยกแบบที่คุณว่าไม่เป็นอะ

เพราะคำสั่ง getcsv มันรับภาษาไทยที่เป็น utf 8 ไม่ได้ มีคำสั่งอื่นไมครับ ? หรือวิธีอื่น ?
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

มองมันเป็น text file ธรรมดา ครับ
แล้วใช้ function explode() แยกแต่ละ field ของแต่ละบรรทัดเอาครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
demonxiii
PHP Sr. Member
PHP Sr. Member
โพสต์: 54
ลงทะเบียนเมื่อ: 04/01/2009 7:54 pm

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย demonxiii »

โค้ด: เลือกทั้งหมด

	$host = 'localhost'; //sql208.thport.com
	$user = 'root';  //'197030'; //thpor_2957156
	$pass = 'ekachai';
	$dbname = 'his'; //'197030'; // thpor_2957156_his
	$conn = mysql_connect("$host","$user","$pass");
	mysql_select_db("$dbname",$conn);
	mysql_query("SET NAMES UTF8",$conn);


if ($Uploaded_File != "") // ตรวจสอบว่ามีไฟล์ส่งมาหรือไม่ 
{
	if(strchr($Uploaded_File_name,".")==".csv") //เช็คนามสกุล
	{
		copy($Uploaded_File,"file/".$Uploaded_File_name); // Copy File ไว้ที่ Folder File
		$FILE = fopen( "file/".$Uploaded_File_name, "r");
		$i=1;
		while (!feof($FILE))
		{
		$READ = fgets($FILE,2048);
		$DATA = explode(',',$READ);
		if ($i>1) //ไม่อ่านแถวแรกสุด เพราะแถวแรกสุดคือ หัวฟิลล์
			{
			echo $DATA[0]." "; //ส่วนนี้ผมไว้ดูเฉยๆ ว่ามีแถวอะไรบ้าง
			echo $DATA[1]." ";
			echo $DATA[2]."<br>";
			mysql_query("INSERT INTO icd_10 (ICD,Detail_En,Detail_Th) VALUES ($DATA[0],$DATA[1],$DATA[2])");
			}
		$i=$i+1;
		}
	}
	else
	{
		echo "file is not .csv"; 
	}
}
อันนี้คือที่ลองพยายามทำขึ้นมาครับ

ปัญหาที่เจอคือเวลาเอาไฟล์ที่ export มาแก้ด้วย excel แล้วใส่ไปใหม่พบว่า ภาษาไทยใช้ไม่ได้
แล้วก็เพี้ยนค่าครับ

แต่หากแค่เป็นการ BACKUP ละก็ไม่มีปัญหา สามารถใช้ได้ปรกติ แต่ หากเป็นการเพิ่มเติมเข้าไป โดยมีการซ้ำ มันจะหยุดทำการเพิ่มทันทีนะสิครับ

อยากรู้เพิ่มเติมหน่อยครับ ว่ามีคำสั่งไรมาแก้ไขพวกนี้ได้บ้าง
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองเช็คคำสั่ง sql นี้ครับ
INSERT INTO icd_10 (ICD,Detail_En,Detail_Th) VALUES ($DATA[0],$DATA[1],$DATA[2])
ตรง Values ถ้าค่าเป็น text ต้องอยู่ใน เครื่อง หมาย 'yyyyy'
ส่วนเรื่อง ถ้า PK ซ้ำกันจะ insert แต่ละครั้งไม่ได้ ไม่ได้ทำให้ ออกจาก loop
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
demonxiii
PHP Sr. Member
PHP Sr. Member
โพสต์: 54
ลงทะเบียนเมื่อ: 04/01/2009 7:54 pm

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย demonxiii »

การใช้คำสั่ง unlink เพื่อลบไฟล์ที่พึ่งอัพขึ้นมา จากโค้ดข้างบน ควรวางไว้ตรงไหนหรอครับ

ผมลองแล้วมันบอก No permission
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองอ่านเพิ่มเติมที่
https://www.mindphp.com/modules.php?name ... cle&sid=16
เกี่ยวกับการ upload ไฟล์
ส่วนเรื่อง ลบ ออก สามารถลบออกได้ เมื่อ จบการอ่านข้อมูลนั้นไปใช้เสร็จ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 57