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 > ใครรู้บ้าง json_encode เชื่อมต่อกับฐานข้อมูล แล้วสามารถแสดงเป็นภาษาไทยได้



 

ใครรู้บ้าง json_encode เชื่อมต่อกับฐานข้อมูล แล้วสามารถแสดงเป็นภาษาไทยได้

 



Topic : 115931



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



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




ใครรู้บ้างครับ json_encode ที่ทำการเชื่อมต่อกับฐานข้อมูล (MS-SQL หรือ MySQL) แสดงได้เฉพาะภาษาอังกฤษ และ ตัวเลขเท่านั้น อยากให้แสดงเป็นภาษาไทยด้วย

Code (PHP)
<?
$a = mssql_connect("localhost\sa", "sa", "smice");
$b = mssql_select_db("dbnew");
$sign = trim($_POST['sign']);
$c = "select distinct Register, Brand, Model from cars where Chassis_ID='".$sign."'";
$d = mssql_query($c);
$e = mssql_num_fields($d);
$f = array();
while ($g = mssql_fetch_array($d)) {
$h = array();
for ($i=0; $i<$e; $i++) {
$h[mssql_field_name($d, $i)] = $g[$i];
}
array_push($f, $h);
}
mssql_close($a);echo json_encode($f);
?>


ผลลัพธ์
{"Register":"3","Brand":"","Model":""}

ความต้องการที่จะให้เป็น
{"Register":"3บล3838","Brand":"นิสสัน","Model":"นาวาร่า"}



Tag : PHP, MySQL, Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012, Android







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-04-21 16:44:16 By : suparuark View : 1379 Reply : 10
 

 

No. 1



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



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


Code (PHP)
<?
$a = mssql_connect("localhost\sa", "sa", "smice");
$b = mssql_select_db("dbnew");
$sign = trim($_POST['sign']);
$c = "select distinct Register, Brand, Model from cars where Chassis_ID='".$sign."'";
$d = mssql_query($c);
$e = mssql_num_fields($d);
$f = array();
while ($g = mssql_fetch_array($d)) {
$h = array();
for ($i=0; $i<$e; $i++) {
$h[mssql_field_name($d, $i)] = $g[$i];
}
array_push($f, $h);
}
mssql_close($a);echo json_encode($f);
?>

ให้เพิ่มส่วนของภาษาไทยเข้าไปด้วยครับ ตอนที่ query ข้อมูลออกมา mysql_query("SET NAMES utf8");
เป็น

Code (PHP)
<?
$a = mssql_connect("localhost\sa", "sa", "smice");
$b = mssql_select_db("dbnew");
$sign = trim($_POST['sign']);
$c = "select distinct Register, Brand, Model from cars where Chassis_ID='".$sign."'";
mysql_query("SET NAMES utf8");
$d = mssql_query($c);
$e = mssql_num_fields($d);
$f = array();
while ($g = mssql_fetch_array($d)) {
$h = array();
for ($i=0; $i<$e; $i++) {
$h[mssql_field_name($d, $i)] = $g[$i];
}
array_push($f, $h);
}
mssql_close($a);echo json_encode($f);
?>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-21 18:34:42 By : namepure
 


 

No. 2



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


16. mssql_close($a); echo json_encode($f);

ก่อน บันทัดข้างบน ลอง print_r($f) มาดูก่อนครับว่า ได้รับข้อมูลถูกต้องหรือเปล่า


ถ้าถูกต้อง
ช่วย copy ข้อมูลที่ได้มาลงหน่อยครับ

คำสั่ง json_encode(); ไม่น่าทำงานผิดนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-21 21:41:10 By : Chaidhanan
 

 

No. 3



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



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


ออกแล้วครับ แต่ไม่ใช่ภาษาไทย

Code (PHP)
$a = mssql_connect("localhost\sa", "sa", "smice");
$b = mssql_select_db("dbnew");
$sign = trim($_POST['sign']);
$c = "select distinct Register, Brand, Model from cars where Chassis_ID='".$sign."'";
mysql_query("SET NAMES utf8");
$d = mssql_query($c);
$e = mssql_num_fields($d);
$f = array();
while ($g = mssql_fetch_array($d)) {
$h = array();
for ($i=0; $i<$e; $i++) {
$h[mssql_field_name($d, $i)] = $g[$i];
}
array_push($f, $h);
}
mssql_close($a);
print_r($f);
echo "<br /><br />";
echo json_encode($f);


ผลลัพธ์
Array ( [0] => Array ( [Register] => 3��3838 [Brand] => ������ [Model] => ������� ) )

[{"Register":"3","Brand":"","Model":""}]

ถ้าได้เป็นภาษาไทยจะขอบคุณมากๆ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-22 09:38:38 By : suparuark
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


Code (PHP)
function mat ($matches) {
	return mb_convert_encoding(pack('H*',$matches[1]),'UTF-8','UTF-16');
}
function raw_json_encode($input) {
 	return preg_replace_callback( '/\\\\u([0-9a-zA-Z]{4})/', mat , json_encode($input) );
}
echo raw_json_encode( $f );


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-22 10:03:21 By : Chaidhanan
 


 

No. 5



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



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


Code (PHP)
$a = mssql_connect("localhost\sa", "sa", "smice");
$b = mssql_select_db("dbnew");
$sign = trim($_POST['sign']);
$c = "select distinct Register, Brand, Model from cars where Chassis_ID='".$sign."'";
mysql_query("SET NAMES utf8");
$d = mssql_query($c);
$e = mssql_num_fields($d);
$f = array();
while ($g = mssql_fetch_array($d)) {
$h = array();
for ($i=0; $i<$e; $i++) {
$h[mssql_field_name($d, $i)] = $g[$i];
}
array_push($f, $h);
}
mssql_close($a);
print_r($f);
echo "<br /><br />";
echo json_encode($f);
echo "<br /><br />";
function mat ($matches) {
	return mb_convert_encoding(pack('H*',$matches[1]),'UTF-8','UTF-16');
}
function raw_json_encode($input) {
 	return preg_replace_callback( '/\\\\u([0-9a-zA-Z]{4})/', mat , json_encode($input) );
}
echo raw_json_encode( $f );


ผลลัพธ์
Array ( [0] => Array ( [Register] => 3��3838 [Brand] => ������ [Model] => ������� ) )

[{"Register":"3","Brand":"","Model":""}]

[{"Register":"3","Brand":"","Model":""}]

ก้อเป็นเหมือนเดิมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-22 11:47:15 By : suparuark
 


 

No. 6



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ลองใสให้เต็มรูปแบบ html

<!doctype html>
<html>
<head>
<meta charset="utf8" />
</head>
<body>
<?php
.....
?>
</body>
</html>

ผมคิดว่า field type คงไม่ใช่ nvarchar
ให้ใช้ iconv แปลงค่าให้เป็น utf8 ก่อนครับ ที่บันทัด 12.
$h[mssql_field_name($d, $i)] = $g[$i];
แก้เป็น
$h[mssql_field_name($d, $i)] = iconv( 'tis620', 'utf8', $g[$i]);


และ บันทัด 5 เอาออกครับ ไม่ได้ประโยชน์อะไร mssql กับ mysql มันทำร่วมกันไม่ได้
mysql_query("SET NAMES utf8");
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-22 20:40:18 By : Chaidhanan
 


 

No. 7



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



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


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

ตอนนี้ผมทำการเปลี่ยนแปลงเลิกใช้ json_encode() แล้วครับ ใช้ xml แทน

Code (PHP)
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="windows-874"?>';
$conn = mssql_connect("localhost\sa", "sa", "smice");
mssql_select_db("dbnew");
$cha4 = "11011";
$cha1 =  "select distinct Chassis_ID, Register, Brand, Model from cars where Chassis_ID='".$cha4."' order by Register asc";
$cha2 = mssql_query($cha1);
echo "<data>";
while ($cha3 = mssql_fetch_array($cha2)) {
echo "<user>";
echo "<Chassis_ID>".trim($cha3['Chassis_ID'])."</Chassis_ID>";
echo "<Register>".trim($cha3['Register'])."</Register>";
echo "<Brand>".trim($cha3['Brand'])."</Brand>";
echo "<Model>".trim($cha3['Model'])."</Model>";
echo "</user>";
}
echo "</data>";


ผลลัพธ์
XML

ผลเสีย ต่อการเอามาใช้ใน Android
Android

ดึงจากฐานข้อมูล (MS-SQL) ออกมาเป็นภาษาไทยได้แล้ว ทีนี้ต้องหาวิธีการให้แสดงใน Android เป็นภาษาไทย ต้องศึกษาเพิ่มเติมอีกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-23 10:00:29 By : suparuark
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ถ้าใช้ Interface กับ อุปกรณ์อื่น ๆ แนะนำให้ใช้ UTF-8 แทน windows-874 ครับ ส่วนบ Android ของดูกระทู้นี้ครับ

Android MySQL ภาษาไทย มีปัญหากับการส่งค่าแบบ HttpPost จาก android ไป PHP เป็นภาษาไทย เรียนเชิญด้านในครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-23 10:06:55 By : mr.win
 


 

No. 9



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



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


ได้แล้วครับ แต่ต้องแปลงแบบต้องดูได้เฉพาะใน android เท่านั้น

รูปแบบ PHP เชื่อมต่อ XML

php

รูปแบบ XML

xml

Android

android
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-23 10:44:43 By : suparuark
 


 

No. 10



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ดีใจด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-23 11:21:11 By : mr.win
 

   

ค้นหาข้อมูล


   
 

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