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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: Import CSV โดยการ Browse ไฟล์ทำยังไงครับ

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

โดย mindphp » 24/02/2009 11:59 am

ตัว $Uploaded_File เอามาจากไหน ลองเช็คดูครับ

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

โดย demonxiii » 24/02/2009 10:23 am

ขอบคุณครับ ทำได้แล้ว

ติดปัญหาเดียวคือ เวลาขึ้น server มัน import ไม่ได้ มันบอกไฟล์ไม่ถูกต้องตลอดๆ ทั้งที่ในเครื่องทำได้

ตอนนี้เลยเปลี่ยนมาใช้ FTP ของเพื่อนแทน

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

โดย mindphp » 18/02/2009 9:38 am

ลองอ่านเพิ่มเติมที่
https://www.mindphp.com/modules.php?name ... cle&sid=16
เกี่ยวกับการ upload ไฟล์
ส่วนเรื่อง ลบ ออก สามารถลบออกได้ เมื่อ จบการอ่านข้อมูลนั้นไปใช้เสร็จ

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

โดย demonxiii » 17/02/2009 11:24 pm

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

ผมลองแล้วมันบอก No permission

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

โดย mindphp » 17/02/2009 3:34 pm

ลองเช็คคำสั่ง sql นี้ครับ
INSERT INTO icd_10 (ICD,Detail_En,Detail_Th) VALUES ($DATA[0],$DATA[1],$DATA[2])
ตรง Values ถ้าค่าเป็น text ต้องอยู่ใน เครื่อง หมาย 'yyyyy'
ส่วนเรื่อง ถ้า PK ซ้ำกันจะ insert แต่ละครั้งไม่ได้ ไม่ได้ทำให้ ออกจาก loop

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

โดย demonxiii » 17/02/2009 3:17 pm

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

	$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 ละก็ไม่มีปัญหา สามารถใช้ได้ปรกติ แต่ หากเป็นการเพิ่มเติมเข้าไป โดยมีการซ้ำ มันจะหยุดทำการเพิ่มทันทีนะสิครับ

อยากรู้เพิ่มเติมหน่อยครับ ว่ามีคำสั่งไรมาแก้ไขพวกนี้ได้บ้าง

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

โดย mindphp » 17/02/2009 1:13 pm

มองมันเป็น text file ธรรมดา ครับ
แล้วใช้ function explode() แยกแต่ละ field ของแต่ละบรรทัดเอาครับ

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

โดย demonxiii » 17/02/2009 1:00 pm

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

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

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

เพราะคำสั่ง getcsv มันรับภาษาไทยที่เป็น utf 8 ไม่ได้ มีคำสั่งอื่นไมครับ ? หรือวิธีอื่น ?

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

โดย mindphp » 16/02/2009 3:58 pm

ทำให้ Browse ไฟล์ คือเราต้องทำ form ใส่ file field ลงไป
เหมือน ทำ upload ไฟล์ ปกติครับ
แต่พออัพโหลด แล้วให้ทำตาม คำแนะนำข้างบน

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

โดย demonxiii » 16/02/2009 2:43 pm

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

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

เหมือนเวลาเรา Import เข้า MYSQL อะครับ ที่กด Browse ไฟล์แล้วกด GO

ข้างบน