|
|
|
เพื่อนๆ ช่วยแก้ php + code + mysql เป็น วิทยาทานครับ คือ ตารางอ่านไทยไม่ได้ |
|
|
|
|
|
|
|
ผมได้ code มาครับ ชื่อ J_MySQL.php
<?php
class J_SQL
{
//Var คือการประกาศตัวแปรที่ใช้กันใน Class
var $db_host;
var $db_user;
var $db_pass;
var $db_name;
var $db_connect;
//เวลาเอาตัวแปรที่กำหนด Var ใน Class มาใช้ ให้ใส่ $this->ตัวแปร
function J_SQL()
{
$this->db_host = _host;
$this->db_user = _db_user;
$this->db_pass = _db_pass;
$this->db_name = _db_name;
}
//ฟังก์ชั่นติดต่อฐานข้อมูล
function J_ConnectDB()
{
$this->db_connect = @mysql_connect($this->db_host,$this->db_user,$this->db_pass) or die(mysql_error());
}
//ฟังก์ชั่นเลือกฐานข้อมูล
function J_SelectDB()
{
@mysql_select_db($this->db_name) or die(mysql_error());
}
//ฟังก์ชั่นที่ทำให้ MySQL แสดงอักขระเป็น tis620
function set_char_tis620()
{
$cs1 = "SET character_set_results=tis620";
$cs2 = "SET character_set_client = tis620";
$cs3 = "SET character_set_connection = tis620";
@mysql_query("SET NAMES TIS620");
@mysql_query($cs1) or die('Error query: ' . mysql_error());
@mysql_query($cs2) or die('Error query: ' . mysql_error());
@mysql_query($cs3) or die('Error query: ' . mysql_error());
}
//ฟังก์ชั่นที่ทำให้ MySQL แสดงอักขระเป็น utf8
function set_char_utf8()
{
$cs1 = "SET character_set_results=utf8";
$cs2 = "SET character_set_client = utf8";
$cs3 = "SET character_set_connection = utf8";
@mysql_query("SET NAMES UTF8");
@mysql_query($cs1) or die('Error query: ' . mysql_error());
@mysql_query($cs2) or die('Error query: ' . mysql_error());
@mysql_query($cs3) or die('Error query: ' . mysql_error());
}
//ฟังก์ชั่นเรียกดูข้อมูลในฐานข้อมูล คืนค่าเป็น อะเรย์
function J_Select($fieldNames,$tableName)
{
$sql = "SELECT ".$fieldNames." FROM ".$tableName;
$rs = @mysql_query($sql) or die(mysql_error());
while($row = @mysql_fetch_array($rs))
{
$array[] = $row;
}
return $array;
}
//ฟังก์ชั่นเรียกดูข้อมูลในฐานข้อมูล คืนค่าเป็น อะเรย์
function J_Selectupdate($fieldNames,$tableName,$key)
{
$sql = "SELECT ".$fieldNames." FROM ".$tableName." WHERE id=".$key;
$rs = @mysql_query($sql) or die(mysql_error());
while($row = @mysql_fetch_array($rs))
{
$array[] = $row;
}
return $array;
}
//ฟังก์ชั่นเพิ่มข้อมูลลงในฐานข้อมูล
function J_Insert($fieldsAndValues,$tableName)
{
$sql = "INSERT INTO ".$tableName;
$f = "(";
$val = " VALUES(";
for($i < 0 ; $i < count($fieldsAndValues);$i++)
{
$f .= key($fieldsAndValues);
if($i != (count($fieldsAndValues)-1))
$f .= ",";
$val .= "'".$fieldsAndValues[key($fieldsAndValues)]."'";
if($i != (count($fieldsAndValues) - 1))
$val .= ",";
next($fieldsAndValues);
}
$f .= ")";
$val .= ")";
$sql .= $f.$val;
@mysql_query($sql) or die(mysql_error());
}
//ฟังก็ชั่นปรับปรุงข้อมูลในฐานข้อมูล
function J_Update($fieldsAndValues,$key,$tableName)
{
$sql = "UPDATE ".$tableName." SET ";
$w = "";
for($i < 0 ; $i < count($fieldsAndValues);$i++)
{
$sql .= key($fieldsAndValues)." = '".$fieldsAndValues[key($fieldsAndValues)]."'";
if($i != (count($fieldsAndValues)-1))
$sql .= ", ";
if($i == $key[$i])
{
$w .= key($fieldsAndValues)." = '".$fieldsAndValues[key($fieldsAndValues)]."'";
if($i != (count($key)-1))
$w .= " AND ";
}
next($fieldsAndValues);
}
$sql .= " WHERE ".$w;
@mysql_query($sql) or die(mysql_error());
}
//ฟังก์ชั่นลบข้อมูลในฐานข้อมูล
function J_Delete($fieldsAndValues,$tableName)
{
$sql = "DELETE FROM ".$tableName." WHERE id=".$fieldsAndValues;
@mysql_query($sql) or die(mysql_error());
}
//ฟังก์ชั่นทำคำสั่ง sql โดยไม่มีการแสดงผลเช่น INSERT, DELETE, UPDATE
function J_ExecuteNonQuery($sql)
{
@mysql_query($sql) or die(mysql_error());
}
//ฟังก์ชั่นทำคำสั่ง sql คืนค่าเป็น อะเรย์
function J_Execute($sql)
{
$rs = @mysql_query($sql) or die(mysql_error());
while($row = @mysql_fetch_array($rs))
{
$array[] = $row;
}
return $array;
}
//ฟังก์ชั่นปิดการเชื่อมต่อฐานข้อมูล
function J_Close()
{
@mysql_close($this->db_connect);
}
}
?>
แล้ว มีไฟล์ insert.php ตามนี้คือ
<?php
include("config.php"); // เรียกไฟล์ config.php เข้ามา
include("J_MySQL.php"); // เรียกไฟล์ J_MySQL.php เข้ามา
$juice = new J_SQL; //สร้างออบเจ็ค J_SQL ขึ้นมา
//เรียกใช้เมธอด J_ConnectDB() หรือจะเรียกว่าฟังก์ชั่นก็ได้
//งั้นเรียกฟังก์ชั่นดีกว่า ต่อไปนี้ขอเรียกเมธอด ว่าฟังก์ชั่นก็แล้ว -*-
//ส่วนฟังก์ชั่น แต่ล่ะตัวคืออะไรให้กลับไปดูที่ไฟล์ J_MySQL.php
$juice->J_ConnectDB();
$juice->J_SelectDB(); // เรียกใช้ฟังก์ชั่น J_SelectDB()
$juice->set_char_utf8(); // เรียกใช้ฟังก์ชั่น set_char_utf8()
//$_REQUEST รับค่าได้ทั้ง POST, GET
$ins["name"] = $_REQUEST[name];
$ins["phone"] = $_REQUEST[phone];
$ins["email"] = $_REQUEST[email];
/**
ที่เห็นอยู่ด้านบนก็คือ Array แบบกำหนด Key นั้นเอง
คงเดาออกแล้วใช้ไหมครับว่าผมใช้ Array ทำอะไร
สังเกตว่า Key ของ Array ที่มีชื่อว่า $ins นั้นมีชื่อตรงกับ
ฟิลล์ใน Tabale tbl_test เลยใช่ไหมครับ
แล้วค่าใน Array ก็คืออ.. ใช่แล้วว คือค่าที่เราจะ Insert เข้าไปนั้นเอง
**/
/**
เอาล่ะมาดู Code กันต่อมันยังไม่จบ -*-
ต่อไปเรียกใช้ฟังก์ชั่น J_Insert() มี Method สองตัว
ตัวแรกรับค่าเป็น Array ในที่นี้ใส่ Array ที่ชื่อว่า $ins นั่นเอง
ตัวที่สองรับค่าเป็น String ให้เราใส่ชื่อ Table เข้าไป
ในที่นี้ Table ของเรามีชื่อว่า "tbl_test" นั่นเอง ^^
**/
$juice->J_Insert($ins,"tbl_test");
$juice->J_Close(); // ปิดการเชื่อมต่อ Database
echo "Recorded successfully.";
?>
แต่เมื่อไปเปิดดูในตาราง ผ่าน phpmyadmin น่ะครับ อ่านภาษาไทยไม่ออกเลยครับ
Tag : PHP
|
|
|
|
|
|
Date :
2010-11-18 16:53:34 |
By :
joolawan |
View :
1495 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$cs1 = "SET character_set_results=tis620";
$cs2 = "SET character_set_client = tis620";
$cs3 = "SET character_set_connection = tis620";
@mysql_query("SET NAMES TIS620");
เปลี่ยน tis620 ให้เป็น utf8
|
|
|
|
|
Date :
2010-11-18 16:57:21 |
By :
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมทำตามแล้วคับ แต่ว่า ที่ phpmyadmin ยังเป็น อ่านไม่ออกตามภาพครับ
|
ประวัติการแก้ไข 2010-11-19 09:03:36
|
|
|
|
Date :
2010-11-19 09:02:13 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฟอร์มสำหรับบันทึกข้อมูลให้ Save As เป็น UTF-8
ฟอร์มแสดงข้อมูลก็Save As Utf-8
เวลาสร้างไฟล์ดาต้าเบสให้เลือกไฟล์ป็น Utf-8
แล้วจะไม่มีปัญหานี้กวนอีกต่อไป
|
|
|
|
|
Date :
2010-11-19 09:06:41 |
By :
mangporza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไฟล์ สำหรับ from insert คือ
<FORM METHOD=POST ACTION="insert.php">
Name : <INPUT TYPE="text" NAME="name" size="20" maxlength="20"><BR>
Phone : <INPUT TYPE="text" NAME="phone" size="10" maxlength="10"><BR>
Email : <INPUT TYPE="text" NAME="email" size="50" maxlength="100"><BR>
<INPUT TYPE="submit" value="Save">
<INPUT TYPE="reset" value="Cancel">
</FORM>
และตารางก็กำหนด ตามรูปแล้วครับ
ควรจะแก้ไขตรงไหนต่อดีครับ
|
|
|
|
|
Date :
2010-11-19 09:26:37 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<html>
<head>
<title>ThaiCreate.Com PHP & UTF-8</title>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
</head>
<?php
include("config.php"); // เรียกไฟล์ config.php เข้ามา
include("J_MySQL.php"); // เรียกไฟล์ J_MySQL.php เข้ามา
$juice = new J_SQL; //สร้างออบเจ็ค J_SQL ขึ้นมา
//เรียกใช้เมธอด J_ConnectDB() หรือจะเรียกว่าฟังก์ชั่นก็ได้
//งั้นเรียกฟังก์ชั่นดีกว่า ต่อไปนี้ขอเรียกเมธอด ว่าฟังก์ชั่นก็แล้ว -*-
//ส่วนฟังก์ชั่น แต่ล่ะตัวคืออะไรให้กลับไปดูที่ไฟล์ J_MySQL.php
$juice->J_ConnectDB();
$juice->J_SelectDB(); // เรียกใช้ฟังก์ชั่น J_SelectDB()
$juice->set_char_utf8(); // เรียกใช้ฟังก์ชั่น set_char_utf8()
//$_REQUEST รับค่าได้ทั้ง POST, GET
$ins["name"] = $_REQUEST[name];
$ins["phone"] = $_REQUEST[phone];
$ins["email"] = $_REQUEST[email];
/**
ที่เห็นอยู่ด้านบนก็คือ Array แบบกำหนด Key นั้นเอง
คงเดาออกแล้วใช้ไหมครับว่าผมใช้ Array ทำอะไร
สังเกตว่า Key ของ Array ที่มีชื่อว่า $ins นั้นมีชื่อตรงกับ
ฟิลล์ใน Tabale tbl_test เลยใช่ไหมครับ
แล้วค่าใน Array ก็คืออ.. ใช่แล้วว คือค่าที่เราจะ Insert เข้าไปนั้นเอง
**/
/**
เอาล่ะมาดู Code กันต่อมันยังไม่จบ -*-
ต่อไปเรียกใช้ฟังก์ชั่น J_Insert() มี Method สองตัว
ตัวแรกรับค่าเป็น Array ในที่นี้ใส่ Array ที่ชื่อว่า $ins นั่นเอง
ตัวที่สองรับค่าเป็น String ให้เราใส่ชื่อ Table เข้าไป
ในที่นี้ Table ของเรามีชื่อว่า "tbl_test" นั่นเอง ^^
**/
$juice->J_Insert($ins,"tbl_test");
$juice->J_Close(); // ปิดการเชื่อมต่อ Database
echo "Recorded successfully.";
?>
ผมลองแล้วครับ ตามคุณ mr. win น่ะครับ ตาม code ข้างบน แต่พอไปดูที่ phpmyadmin น่ะครับ อ่านไทยไม่ออกเหมือนเดิมเลยครับ ขอ email คุณ mr.win ได้มั้ยครับ จะคุย chat ได้เปล่า
|
|
|
|
|
Date :
2010-11-19 09:46:46 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก code ที่ผ่านมาข้างต้นนะครับ อยากจะรู้ว่า $sql ที่จะนำไป insert เข้าในฐานข้อมูล มีค่าอะไร จะต้องเขียน echo ไว้ตรงไหนครับ เพื่อนๆ รบกวนด้วย จนปัญญาจริงๆ เรื่องนี้
|
|
|
|
|
Date :
2010-11-19 10:54:48 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ฟลุ้ค จนได้ ต้องใส่ code แบบนี้ครับ
function set_char_utf8()
{
//การตั้งค่า defalut character ให้เป็น utf8
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_database ='utf8'");
mysql_query("SET character_set_results ='utf8'");
mysql_query("SET character_set_client ='utf8'");
mysql_query("SET character_set_connection ='utf8'");
mysql_query("SET character_set_system ='utf8'");
mysql_query("collation_connection = utf8_thai_ci");
mysql_query("collation_database = utf8_thai_ci");
mysql_query("collation_server = utf8_thai_ci");
}
|
|
|
|
|
Date :
2010-11-25 16:47:03 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองตัดส่วนนี้ออกไปด้วยครับ ถ้าเกิดใช้ utf-8แต่ถ้าใช้tis-620 ก็ให้ตัดส่วนของ utf-8ออกไปครับ แต่ฐานข้อมูลท่านต้องเซตเป็นutf-8ก่อนนะครับเพราะส่วนใหญ่เค้าใช้ตัวนี้กันแล้วอีกอย่างตอนลงมันก็จะเซตให้เป็นutf-8อยู่แล้วครับ collection เวลาสร้างฐานข้อมูลก็เซตให้เป็น utf-8 unicode
Code (PHP)
function set_char_tis620()
{
$cs1 = "SET character_set_results=tis620";
$cs2 = "SET character_set_client = tis620";
$cs3 = "SET character_set_connection = tis620";
@mysql_query("SET NAMES TIS620");
@mysql_query($cs1) or die('Error query: ' . mysql_error());
@mysql_query($cs2) or die('Error query: ' . mysql_error());
@mysql_query($cs3) or die('Error query: ' . mysql_error());
}
|
|
|
|
|
Date :
2010-11-25 18:01:05 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|