|
|
|
insert ข้อมูลจาก text file ลงใน mysql table แล้วภาษาไทยมันขึ้นแบบนี้ ??? เพราะอะไรค่ะ |
|
|
|
|
|
|
|
ถ้าเป็นตัวเลขปกติค่ะ แต่ภาษาไทยเป็น ???
รบกวนท่านผู้รู้ด้วยค่ะ
มีข้อมูลใน text file แบบนี้ค่ะ
1, สมจิตร
2, สุมณฑา
3, องอาจ
ตาราง test
Code (PHP)
<?php
include ("config.php");
$realname = $_FILES['datafile']['name'];
$file_name = $_FILES['datafile']['tmp_name'];
if (($_FILES["datafile"]["type"] == "text/plain")){
if (is_uploaded_file($file_name))
{
copy($file_name,"upload/".$realname);
$fname = $file_name;
$fh = fopen($fname, "r");
while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO test ( test_id, test_name ) VALUES ( '$fline[0]', '$fline[1]' );";
$db_res = mysql_query($db_sql) or die($db_sql);
$result1="select * from test";
$query1 = mysql_query($result1);
while($row2 = mysql_fetch_array($query1)){
echo $row2['test_name'].'';}
}
fclose($fh);
}
}
?>
Code (config.php)
<?php
$hostname="localhost";
$user1="root";
$password="1234";
$dbname="schedulesm";
mysql_connect($hostname,$user1,$password) or die("cannot connect database");
mysql_select_db($dbname) or die("cannot select DB");
mysql_query("SET NAMES UTF8");
?>
Tag : PHP
|
|
|
|
|
|
Date :
2013-02-19 21:04:12 |
By :
phonlamai |
View :
2515 |
Reply :
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เกิดจาก Character Set ในตาราง = tis620_thai_ci แต่เราสั่ง Query ข้อมูลเป็นแบบ UTF-8 ดังนั้นควรเปลี่ยนให้ตรงกันทั้งสองฝั่งครับ แล้วลบข้อมูลเก่าทิ้งแล้วลองบันทึกใหม่ น่าจะใช้ได้ครับ
|
|
|
|
|
Date :
2013-02-19 21:42:37 |
By :
nprawit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ nprawit และ คุณ ดิวค่ะ
เปลี่ยนเป็น utf-8 แล้วค่ะ
แต่ว่าคราวนี้ข้อมูลที่เป็นภาษาไทยว่างเปล่าเลยค่ะ
ว่างเลยค่ะ
ตาราง test
ตรงนี้ก็เป็น utf-8 ค่ะ
|
|
|
|
|
Date :
2013-02-19 22:12:51 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้โปรแกรมอะไรเขียนครับ
ถ้าใช้ ดรีม
ตามเมนูไปนี้ไปครับ
Modify > Page propertie
เลือก Title/Encoding
จะเห็นเมนู Encoding เลือก ภาษา จากนั้นกด Reload แล้วก็โอเคครับ
|
|
|
|
|
Date :
2013-02-20 01:10:06 |
By :
chaynuwong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณ chaynuwong และคุณ apisitp ค่ะ
ใช้ดรีมค่ะ แต่ทำตามแล้วแต่มันก็ได้ค่าว่างเหมือนเดิมค่ะ
|
ประวัติการแก้ไข 2013-02-20 13:25:06
|
|
|
|
Date :
2013-02-20 12:26:09 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดู iconv() ครับ
|
|
|
|
|
Date :
2013-02-20 12:44:25 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ mr.win ค่ะ
ทำตามแล้วค่ะ แต่มันก็ว่างเหมือนเดิมค่ะ
ใช้ inconv() แบบนี้รึเปล่าค่ะ
Code (PHP)
<?php
include ("config.php");
$realname = $_FILES['datafile']['name'];
$file_name = $_FILES['datafile']['tmp_name'];
$fileupload_size= $_FILES['datafile']['size'];
$fileupload_type= $_FILES['datafile']['type'];
if (($_FILES["datafile"]["type"] == "text/plain")){
if (is_uploaded_file($file_name))
{
copy($file_name,"upload/".$realname);
$fname1 = $file_name;
$fname = iconv("UTF-8","tis-620",$fname1);
$fh = fopen($fname, "r");
while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO test ( test_id, test_name ) VALUES ( '$fline[0]', '$fline[1]' );";
$db_res = mysql_query($db_sql) or die($db_sql);
$result1="select * from test";
}
fclose($fh);
}
}
?>
|
ประวัติการแก้ไข 2013-02-20 13:20:23 2013-02-20 13:21:35
|
|
|
|
Date :
2013-02-20 13:19:28 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกท่านมากค่ะ ตอนนี้ได้แล้วค่ะ
แต่พอขึ้น host จริง ข้อมูลที่เป็นภาษาไทยมันว่างค่ะ
รบกวนท่านผู้รู้หน่อยค่ะ
ตาราง test
code แบบฟอร์ม
Code (PHP)
<form action="upload.php" method="post" enctype="multipart/form-data">
<table class="table" border="0" width="400">
<tr>
<td align="right">ไฟล์ที่ต้องการอัพหลดไฟล์ :</td>
<td><input type="file" name="datafile" id="file"></td>
</tr>
<tr>
<td colspan="2" align="center"><center>
<input name="" value="อัพโหลด" type="submit" class="bg_submit">
</center></td>
</tr>
</table>
</form>
code upload
Code (PHP)
<?php
header('Content-Type: text/html; charset=UTF-8');
include ("config.php");
$realname = $_FILES['datafile']['name'];
$file_name = $_FILES['datafile']['tmp_name'];
$fileupload_size= $_FILES['datafile']['size'];
$fileupload_type= $_FILES['datafile']['type'];
if (($_FILES["datafile"]["type"] == "text/plain")){
if (is_uploaded_file($file_name))
{
copy($file_name,"upload/".$realname);
$fname1 = $file_name;
$fname = iconv("UTF-8","TIS620",$fname1);
$fh = fopen($fname, "r");
while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO test (test_id, test_name) VALUES ('$fline[0]', '$fline[1]')";
$db_res = mysql_query($db_sql) or die($db_sql);
$query_str1 = "select *from test";
$rs1 = mysql_query($query_str1);
while($row = mysql_fetch_array($rs1)){
echo $row['test_name'].' ';
}
}
fclose($fh);
}
else{
echo '<script language="javascript">
function fncAlert()
{alert("ไม่สามารถอัพโหลดไฟล์ได้");}
fncAlert();
window.location="importdata.php";
</script>';
exit();
}
}else {
echo '<script language="javascript">
function fncAlert()
{alert("ประเภทไฟล์ไม่ถูกต้อง");}
fncAlert();
window.location="importdata.php";
</script>';
exit();
}
?>
|
|
|
|
|
Date :
2013-02-20 19:42:16 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ยังครับ ของผมตอนแรกก็เป็นครับ ดูแล้วเพิ่มเอานะครับไฟล์ที่ใช้ติดต่อฐานข้อมูลประมาณนี้
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$host="localhost";
$user="root";
$password="1";
$db_name="booking";
$conn=mysql_connect($host,$user,$password);
$conn_db=mysql_select_db($db_name);
mysql_query("SET NAME utf8");//เพิ่มตรงนี้เข้าไป
mysql_query("SET character_set_results=utf8");//เพิ่มตรงนี้เข้าไป
mysql_query("SET character_set_client=utf8");//เพิ่มตรงนี้เข้าไป
mysql_query("SET character_set_connection=utf8");//เพิ่มตรงนี้เข้าไป
if(!$conn_db){
echo"No select database name".$db_name;
}
?>
|
|
|
|
|
Date :
2013-02-21 07:05:57 |
By :
white31969 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากกระทู้ถ้าทำได้แล้วก็ดีใจด้วยนร๊าาาาา....
แต่มีข้อสงสัยว่าง ๆ มาอ่านเห็นตอบให้หน่อยนะครับ
------------------------
การอัพเดทข้อมูลใน textfile ลงไปใน database แบบนี้จะทำบ่อยมั้ย หรือว่าเป็นงานประจำเลยครับ??
นึกภาพว่าเอาไปเกี่ยวข้องในระบบงานอะไร ประภทไหน เป็นระบบที่ให้ user อัพข้อมูลตลอดหรืออย่างไร
หรือเป็นแค่เพียงการเตรียมฐานข้อมูล
หรือเขียน code เพื่อการเรียน ไปส่งอาจารย์เท่านั้น
ที่ถามแบบนี้ : ผมมองว่าในความเป็นจริง ในการทำงานจริง
ผมคิดว่า การอัพข้อมูลในฐานข้อมูลที่เครื่องเรา จากนั้นเรา Export ฐานข้อมูลออกจาก phpmyadmin ไปใส่ใน
phpmyadmin บน server จริง มันง่ายกว่าครับ (ผมคิดเองว่ามันง่ายและสะดวกกว่า)
เป็นความสงสัยส่วนตัว ท่านใดมาอ่านแนะนำได้ครับ
|
|
|
|
|
Date :
2013-02-21 08:07:36 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ white31969 มากค่ะ ลองแล้วค่ะแต่มันก็ยังเป็นค่าว่างเหมือนเดิม
ตอบคุณ apisitp
ของหนูเป็นงานที่ทำส่งอาจารย์ค่ะ
อาจารย์บอกว่าไม่อยากให้ผู้ใช้กรอกข้อมูลทีล่ะค่าลงไป
อยากให้ทำใส่ไฟล์แล้วอัพลงฐานข้อมูลทีเดียวเลยค่ะ
|
ประวัติการแก้ไข 2013-02-21 10:49:48
|
|
|
|
Date :
2013-02-21 10:49:15 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ๋อ....งั้นก็สุ้ ๆ ครับ
|
|
|
|
|
Date :
2013-02-21 10:58:19 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็เพิ่งเคยเจอเหมือนกันกับเจ้าของกระทู้นี่แหละคับ
แต่เป็นงานของลูกค้า ที่เอาไว้เพิ่มข้อมูลอัตโนมัติจากเว็บไซต์ ไปฐานข้อมูล (ดึงจากเว็บอื่น ไป db ตัวเอง)
ถ้าเป็น Eng หมด ออกนะครับ
ถ้ามีไทยด้วย ไม่ออก
มันจะ ERROR ว่า ไม่่ได้ Encode UTF-8
ผมเลยลองใช้ mb_detect_encoding ในการเชคว่า ข้อความที่มีปัญหา กับไม่มีปัญหาต่างกันยังไง
ผลปรากฎว่า ไอ้ข้อความที่มันเป็นปัญหา มันบอกว่า ไม่มี encoding ผมก็งมต่อไป
ทำเกือบสามชั่วโมง ไม่ได
เลยตัดปัญหา สั่งให้ดึงข้อมูลมาไว้ในรูปแบบคำสั่ง mysql แล้วก้อบไปวางเอาใน phpmyadmin
ฮา ๆ ง่ายดี .
แต่ถ้าทำต่อ .. คงจะเป็นการส่งค่าที่ได้ ไปให้ไฟล์อื่นเชคว่ามันมี encoding หรือไม่นะครับ
แต่ของ จขกท ผมว่า ให้ท่านเปิดไฟล์ txt ของท่าน แล้วเซฟใหม่ ตรงช่อง Encodeing ให้เลือก UTF-8 ก่อนครับ น่าจะหาย
|
|
|
|
|
Date :
2013-02-21 12:17:32 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ deawx และคุณ apisitp มากค่ะ
ตอนนี้ทำได้แล้วใน localhost แต่ใน host จริง มันไม่เป็นต่างด้าวแล้วค่ะ
แต่มันไม่แสดงแทน
|
ประวัติการแก้ไข 2013-02-21 15:04:19
|
|
|
|
Date :
2013-02-21 15:03:03 |
By :
phonlamai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|