[อีกครั้ง] การดึงภาษาไทย จาก mysql ด้วย php ทำไมถึงขึ้น ???

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
kornpol
PHP Jr. Member
PHP Jr. Member
Posts: 14
Joined: 01/01/1970 7:00 am
Contact:

[อีกครั้ง] การดึงภาษาไทย จาก mysql ด้วย php ทำไมถึงขึ้น ???

Post by kornpol »

ใน mysql ของเราเห็นเป็นภาษาไทยได้ และใช้ code UTF-8 unicode ci แต่พอ run ใน php เพื่อเอาข้อมูลออกมาดู (ใช้ query ทำมะดา) ปรากฏว่าเป็น ???????? จะให้มันแสดงออกมาเป็นภาษาไทย ดีดี ได้ไง ช่วย ตอบที่ว่าเราลืมอะไรไปหรือเปล่า
ดูเวอร์ชั่นเอานะ


Image

ผิดไงก็บอกด้วยนะ

ลืมไป ใน php เรา set "charset=windows-874" เปงแบบนี้อะเราว่าผิดแน่เลยหรือเปล่า
แต่เราก็ลบออกแล้วไม่มีไรเปลี่ยนเลยนะ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25121
Joined: 22/09/2008 6:18 pm
Contact:

Post by mindphp »

ถ้าใน ฐาน ข้อมูลเป็น UTF-8 หน้าเว็บ ก็ ใช้ UTF-8 เลยครับ
แต่เท่าที่ให้ภาพ มามันยังดู ไม่ได้ หรอกครับ ว่า ฐานข้อมูลที่เราสร้าง มา ใช้ charset เป็น อะไร
ตารางแต่ละตารางกำหนดไว้เป็น อะไร ( สำหรับ mysql 5 กำหนดได้ ถึง ระดับ field เลยครับ )
แนะนำให้ กำหนดให้ เหมือนกัน ทั้ง หมด ครับ เป็น utf-8 ให้ หมดเลยก็ได้
ติดตาม 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

User avatar
kornpol
PHP Jr. Member
PHP Jr. Member
Posts: 14
Joined: 01/01/1970 7:00 am
Contact:

Post by kornpol »

กำหนดแล้วนะ เปงเหมือนกันหมดทุกฟิล และตาราง
เราเคยลองเปลี่ยนเป็น code อื่นแล้วแต่ก็เหมือนเดิมนะ

มันจะเป็นไปได้มัยว่าเป็นที่ หน้า web เรา set "charset=windows-874" นี้ไว้อะ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25121
Joined: 22/09/2008 6:18 pm
Contact:

Post by mindphp »

ลอง view source ดูครับ ว่า ที่เป็น ?????? เพราะ เรากำหนด ไม่ตรงกัน
เฉพาะ ฉนั้นถ้าจะให้ แสดง ผล ไม่มีปัญหา ก็ set ให้มันตรง กัน ทุกที่

โค้ด
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "xxxx";
$dbname = "yourDB";

$dbc = mysql_connect($dbhost,$dbuser,$dbpass) or die ("Can not connect MySQL");
$dbs = mysql_select_db($dbname) or die ("Can not connect database");
mysql_db_query($dbname,"SET NAMES UTF8");

หน้าเว็บ
charset=UTF8

ถ้าไม่ อยากใช้ ตามนี้ ก็ลอง เอาไปประยุค ดูครับ



สิงที่ต้อง เช็ค
OS: ???
default language ใน OS: ???
setting เกี่ยวกับภาษาดูใน phpinfo: ???
charset และ collation ของ database: ???
charset และ collation ของ table: ???
charset ที่หน้าเว็บ ???
ติดตาม 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

User avatar
kornpol
PHP Jr. Member
PHP Jr. Member
Posts: 14
Joined: 01/01/1970 7:00 am
Contact:

Post by kornpol »

ขอบคุณนะ และนี้เป็นรูป ตารางและ ข้อมูล

Image

บรรทัดล่างสุดอะที่แสดงไม่ได้

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25121
Joined: 22/09/2008 6:18 pm
Contact:

Post by mindphp »

บรรทัดล่างสุดอะที่แสดงไม่ได้ ??????????
ใช้ โปรแกรม อะไร เปิดข้อมูล ดู ครับ
ติดตาม 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

User avatar
kornpol
PHP Jr. Member
PHP Jr. Member
Posts: 14
Joined: 01/01/1970 7:00 am
Contact:

Post by kornpol »

โปรแกรมดูหรอ
เอาตัว server นะ เป็น xampp ตัว 1.6.2
ตัว query คือตัว sqlyog ก็ตามในภาพอันก่อนด้านล่าง

ส่วนไอ้ตัวที่แสดงเป็น ????? นะคือใช้ IE ดูจาก server ที่เราได้ทำการ set แล้ว
เราว่าปัญหามันอยู่ที่ภาษาที่ ดาต้าเบส อะ ตามรูปนี้อะ

Image

จะถามว่าไป set ที่ไหน รูปจาก phpmyadmin->variable
เห็นมะว่ามันเป็น ลาติน อะ แก้ไงหรอ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25121
Joined: 22/09/2008 6:18 pm
Contact:

Post by mindphp »

ขอดูโค้ดที่หน้าเว็บ ได้ มั๊ยครับ การกำหนดใน ฐานข้อมูล ใช้ได้ แล้ว เหลือ แค่ ตอน query และ เอามาแสดง ผลที่ charset ไม่ตรงกัน
ถ้าจะแก้ config ของ mysql ก็ หา ไฟล์ my.ini
แต่กรณีแบบนี้ เพิ่มส่วนที่โค้ด php ก็ได้ครับ โดยเพิ่ม

$charset="SET NAMES utf-8"
mysql_query($charset) or die('Invalid query: ' . mysql_error());
$charset = "SET character_set_results=utf-8"
mysql_query($charset) or die('Invalid query: ' . mysql_error());
อันนี้กำหนดลงไปเลยว่าเราต้องการ เป็น utf-8 โดยไม่สนในว่า ที่ ฐานข้อมูลกำหนดไว้เป็นอะไร

ลองดูที่นี่ประกอบ นะครับ
https://www.mindphp.com/modules.php?name ... cle&sid=10
https://www.mindphp.com/modules.php?name ... cle&sid=50
แต่ผมแนะนำให้ใช้ utf-8
ติดตาม 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

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 5 guests