|
|
|
ปรึกษา import file CSV หน่อยครับ ผมได้ทำ script import file csv เสร็จเรียบร้อยและได้ทดสอบ import เข้าฐานข้อมูลที่เครื่องตัวเอง |
|
|
|
|
|
|
|
ลองใส่
mysql_query("SET CHARACTER SET utf8");
ก่อน query ข้อมูลดูนะ
|
|
|
|
|
Date :
2010-06-17 09:49:49 |
By :
heng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูแล้วครับ ไม่ได้อ่ะ ทั้งแบบ
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET CHARACTER SET TIS620");
ขอบคุณนะครับที่ให้คำปรึกษา
|
|
|
|
|
Date :
2010-06-17 09:52:17 |
By :
ขอบคุณ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีปัญหาคล้ายกันเลยครับ ของผมเขียน php สั่ง export เป็น excel บน server มันไม่อ่านภาษาไทย
หาวิธีอยู่เหมือนกันครับ เศร้าครับ
|
|
|
|
|
Date :
2010-06-17 09:57:20 |
By :
maruk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก No. 3
เวลาผม export เป็น excel จะเอาข้อมูลทั้งหมดไว้ในตัวแปร
แล้วใช้คำสั่ง fopen กับ fputs ก็ไม่มีปัญหาเรื่องภาษาไทยอ่ะ
ใช้ได้กับ word ได้ด้วยนะ
ตัวอย่าง
Code (PHP)
<?
$report='
<meta http-equiv="Content-Type" content="text/html;charset=windows-874"/>
<table border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td>สวัสดีครับ</td>
</tr>
<tr>
<td>สบายดีไหม</td>
</tr>
</table> ';
echo $report ;
$filexls = fopen("export_xls.xls","w");
fputs($filexls,$report);
$fileword = fopen("export_doc.doc","w");
fputs($fileword,$report);
?>
[<a href="export_xls.xls" target="_blank">view excel</a>]<br>
[<a href="export_doc.doc" target="_blank">view word</a>]
ส่วน import file csv ผมก็ไม่รู้อ่ะ ผมใช้ mysql_query("SET CHARACTER SET utf8"); ก็ได้นะ
|
|
|
|
|
Date :
2010-06-17 10:39:41 |
By :
heng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ทราบว่าฐานข้อมูลเก็บข้อมูลเป็น utf8_unicode_ci หรือว่าเป็นอย่างอื่นครับ ถ้าไม่เช่นนั้น
ลอง สั่งให้ echo , print ออกมาดูจะดีไหมครับ สมมตินะครับ
ข้อมูลเป็น
id,firstname,email
1,นัน,[email protected]
2,น้อย,[email protected]
ก็ให้ลอง explode เสร็จแล้วตามด้วย echo คำสั่ง sql ที่ใช้ดูอ่ะครับ
เช่น
$sql = "INSERT INTO member (id,firstname,email) VALUES ('" , $id , "','" . $firstname . "','" , $email . "')";
echo $sql;
เมื่อสั่งค่าออกมาแล้วให้ลองเอาคำสั่งได้ไป paste ( วาง ) ไว้ใน phpmyadmin โดยตรงเพื่อดูว่ามันจะ insert ได้หรือครับ
ปกติผมทำประมาณนี้อ่ะครับ ลองดูครับ
|
|
|
|
|
Date :
2010-06-17 11:13:01 |
By :
oxygenyoyo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วครับ คุณ OxyGenyoyo
แต่มันติดปัญหาที่ พออัพไฟล์ CSV ลงไป
record ที่เป็นภาษาไทยจะเป็นค่าว่างไปเลย แต่ถ้าฟิล์ด์ถัดไปที่ไม่ใช่ภาษาไทยจะส่งค่ามาได้และบันทึกลงได้
แต่ผมงงตรงนี้ทำที่เครื่องผมไม่มีปัญหา ส่วนทำที่ server จริงเกิดปัญหาขึ้นมาซะงั้น
ไฟล์ csv
ทดสอบ TEST 0874878392 [email protected]
ทดสอบ2 TEST2 0874875553 [email protected]
$sql = "INSERT INTO member (name,lname,phone,mail) VALUES ('ค่าว่าง','TEST','0874878392','[email protected]',)";
$sql = "INSERT INTO member (name,lname,phone,mail) VALUES ('ค่าว่าง','TEST2','0874875553','[email protected]',)";
สรุปยังไม่ได้อ่ะครับ
แต่ก็ขอบคุณมากสำหรับทุกๆ ท่านที่ให้คำปรึกษา
|
|
|
|
|
Date :
2010-06-17 11:30:23 |
By :
รอๆๆๆ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังงั้น คุณอาจจะต้อง ลอง echo ตอนใช้คำสั่ง explode มาเลยอ่ะครับว่าค่าเข้าไปหรือเปล่า ถ้าเรียกอะไรไม่ผิด อาจจะผิดที่ ตอนนำไฟล์เข้าอ่ะครับ
ไฟล์ csv ตัวนั้น save มาเป็นแบบไหนอ่ะครับ utf8 หรือเปล่าครับ ?
|
|
|
|
|
Date :
2010-06-17 15:41:43 |
By :
oxygenyoyo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณต้องทำไฟล์ csv ของคุณให้เป็น type utf8
โดยเปิดไฟล์ที่ Editplus แล้ว save as เลือก type เป็น utf8 น่าจะได้ครับ
|
|
|
|
|
Date :
2010-12-15 14:51:34 |
By :
Senior Dev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ความคิดเห็นที่ 8
ทำไฟล์ csv ของคุณให้เป็น type utf8
โดยเปิดไฟล์ที่ Editplus แล้ว save as เลือก type เป็น utf8
ทำแล้วค่ะ ใช้ได้ ภาษาไทยมาแล้วววววว
ขอบคุณค่ะ
|
|
|
|
|
Date :
2011-12-01 16:52:02 |
By :
neosky |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|