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,029

HOME > PHP > PHP Forum > ปัญหาแบบนี้แก้ไขยังไงครับครับ ผมเขียน PHP มา 1 ไฟล์ เพื่อเชื่อมต่อกับ db ครับ



 

ปัญหาแบบนี้แก้ไขยังไงครับครับ ผมเขียน PHP มา 1 ไฟล์ เพื่อเชื่อมต่อกับ db ครับ

 



Topic : 029874



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



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



ผมเขียน PHP มา 1 ไฟล์ เพื่อเชื่อมต่อกับ db ครับ
แต่มีปัญหาว่า เวลาเข้าหน้าเพจนั้นหรือกด refresh เพจ มันจะส่งข้อมูลเป็นข้อมูลว่างเปล่า
ไปที่ db ทันทีครับ และอีกปัญหาคือ ใน db จะเป็นภาษาขอม ทั้งๆที่เซทเป็น UTF8 แล้ว
จะต้องแก้ไขปัญหาตรงนี้อย่างไรบ้างครับ

ข้างล่างนี้โค้ด ครับ มือใหม่หัดเขียน ขอคำแนะนำด้วยนะครับ
Code
<?php
header ('Content-type: text/html; charset=utf-8');
$dbserver="127.0.0.1";
$dbuser = "";
$dbpass = "";
$dbname = "ems";
$tablename = "trackpost";

mysql_connect($dbserver,$dbuser,$dbpass) or die ("เชื่อมต่อฐานข้อมูลไม่ได้ครับสาดดดด...");
mysql_select_db($dbname);
mysql_db_query('SET NAMES "utf8"');
$sql = "INSERT INTO $tablename (trackid, customername, date, status) VALUES ('$trackid','$customername','$date','$status')";
$sqlquery=mysql_query($sql);

echo "
<FORM METHOD=POST ACTION=\"\">
<TABLE>
<TR>
<TD>หมายเลขพัสดุ<br><INPUT TYPE=\"text\" NAME=\"trackid\"></TD>
<TD>ชื่อลูกค้า<br><INPUT TYPE=\"text\" NAME=\"customername\"></TD>
<TD>วัน/เวลา ที่แจ้งพัสดุ<br><INPUT TYPE=\"text\" NAME=\date\"></TD>
<TD>สถานะ<br><SELECT NAME=\"status\">
<OPTION VALUE=\"จัดส่งแล้ว\" SELECTED>จัดส่งแล้ว</OPTION>
<OPTION VALUE=\"ได้รับสินค้าเรียบร้อบ\">ได้รับสินค้าเรียบร้อย</OPTION>
</SELECT><INPUT TYPE=\"submit\" VALUE=\"submit\" name=\"submit\"></TD>

</TR>
</TABLE>
</FORM>";

?>


อันนี้คือข้อมูลใน db ครับ




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-08-02 21:21:36 By : ru View : 1289 Reply : 16
 

 

No. 1



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



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

Quote:
die ("เชื่อมต่อฐานข้อมูลไม่ได้ครับสาดดดด...");


โหดจัง เหอะๆๆ

เป็นเหมือนกันครับ ปูเสื่อรอคำตอบ อิอิ






Date : 2009-08-02 21:26:06 By : cjmling
 


 

No. 2



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

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

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

บันทึกไฟล์เป็น utf-8 ป่าวคับ

mysql_connect($dbserver,$dbuser,$dbpass) or die ("เชื่อมต่อฐานข้อมูลไม่ได้ครับสาดดดด...");
mysql_select_db($dbname);
mysql_db_query('SET NAMES "utf8"');
$sql = "INSERT INTO $tablename (trackid, customername, date, status) VALUES ('$trackid','$customername','$date','$status')";
$sqlquery=mysql_query($sql);

เป็น
Code (PHP)
<?php
if($trackid && $customername && $date && $status){
mysql_connect($dbserver,$dbuser,$dbpass) or die ("เชื่อมต่อฐานข้อมูลไม่ได้ครับสาดดดด...");
mysql_select_db($dbname);
mysql_db_query('SET NAMES utf8');
$sql = "INSERT INTO $tablename (trackid, customername, date, status) VALUES ('$trackid','$customername','$date','$status')";
$sqlquery=mysql_query($sql);
}
?>


สาดในกระทู้เชียว
Date : 2009-08-02 21:30:19 By : pjgunner
 

 

No. 3



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


ตรงนี้ครับ

Code
$sql = "INSERT INTO $tablename (trackid, customername, date, status) VALUES ('$trackid','$customername','$date','$status')";
$sqlquery=mysql_query($sql);


ต้องทำการตรวจสอบให้ดีด้วย เข้าใจว่าเป็นหน้ารับข้อมูลถึงได้มี insert ทีนี้พอ reload อีกทีมันก็จะเท่ากับเรียกคำสั่งพวกนี้มาทำงานอีก
ดังนั้นเมื่อ insert แล้วแทนที่จะอยู่หน้านี้ผมว่า redirect ไปหน้าอื่นๆดีกว่าครับ หรือทำ querystring ก็ได้เช่น redirect ไปที่ ?p=done แล้วเรียก $_GET['p']; มาเช็คอะไรอย่างนี้ หรือส่งไปหน้าอื่นเลย
เพราะว่าข้อมูลที่รับมา $trackid อะไรพวกนี้มันทำงานไปแล้ว กด reload อีกการเรียกทำงานอีกคงบกพร่องเอาได้


กรณี mysql phpmyadmin
ตอนเข้า myadmin หน้าแรกให้เลือกภาษาก่อน เลือกตรง collation นั่นแหละ เป็น utf8_general_ci หรือเลือก utf-8 แล้วลองเข้าไปดูว่ายังต่างดาวมั้ย
อย่าลืมว่า phpmyadmin ก็คือเว็บๆนึง ต้องเรียกใช้ charset ให้ตรงกับ db เหมือนกับที่เว็บเราเรียกใช้นั่นเอง
Date : 2009-08-02 21:34:37 By : mr.v
 


 

No. 4



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



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

Quote:
บันทึกไฟล์เป็น utf-8 ป่าวคับ


บันทึกเรียบร้อยครับผม
ขอลองโค้ดคุณ เอี่ยว ก่อนนะครับ
ขอบคุณมากครับ
Date : 2009-08-02 21:34:41 By : ru
 


 

No. 5



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


อ้าว มีคนตอบแล้วพอดี
Date : 2009-08-02 21:35:38 By : mr.v
 


 

No. 6



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

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

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

คุณ vee คับ

utf8_general_ci กับ utf8_general_general ต่างกันยังไงเหรอคับ
Date : 2009-08-02 21:37:30 By : pjgunner
 


 

No. 7



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


สาดดด ซะเปียกกันหมด
Date : 2009-08-02 21:37:54 By : plakrim
 


 

No. 8



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

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

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

ลืมอีก

utf8_general_ci กับ utf8_unicode_ci ต่างกันยังไงคับ
Date : 2009-08-02 21:39:59 By : pjgunner
 


 

No. 9



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



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

Quote:
utf8_general_ci กับ utf8_unicode_ci ต่างกันยังไงคับ


อยากรู้เหมือนกันครับ ปกติผมใช้ utf8_unicode ครับ
Date : 2009-08-02 21:40:50 By : ru
 


 

No. 10



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



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

ผมเป็นเหมือนกันครับ แก้ไม่หายครับ ก่อนหน้านี้ใน db จะเป็นต่างดาวแต่ตอนพอ query ออกมาจะเป็นปกติ(ไทย)

แต่หลังจากได้อ่าน post ข้างบน แล้วก็ไปแก้ แต่กลายเป็นว่า ทั้งใน db และ ตอน query ออกมา เป็นต่างดาวทั้งคู่ครับ เซ็งเยย

ค่าของผมมีดังนี้ครับ

phpmyadmin collacation utf8_general_ci
ในตาราง table เป็น utf8_general_ci
ในหน้า เว็บเป็น <meta http-equiv="content-type" content="text/html; charset=utf-8" />

แต่ผมไม่มีบันทัดนี้ตอน connect db ครับ (เพราะก่อนหน้านี้ก็ไม่มีแต่ก็เห็นเป็นภาษาไทยอยู่ ตอน query)

mysql_db_query('SET NAMES utf8');

แต่หลังจากลองใส่แล้วก็ไม่หายครับ เซ็งมากตอนนี้ ช่วยทีครับ
Date : 2009-08-02 22:12:26 By : cjmling
 


 

No. 11



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

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

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


Code (PHP)
<?php
mysql_query("SET character_set_results=tis620"); 
mysql_query("SET character_set_client='tis620'"); 
mysql_query("SET character_set_connection='tis620'"); 
mysql_query("collation_connection = tis620_thai_ci"); 
mysql_query("collation_database = tis620_thai_ci"); 
mysql_query("collation_server = tis620_thai_ci"); 
?>

Date : 2009-08-02 22:56:47 By : panyapol
 


 

No. 12



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


เอ่อ.. utf8_unicode_ci ต่างกับ utf8_general_ci ยังไงเหรอ...

ผมก็ไม่รู้เหมือนกันครับ
ไม่ได้กวนไม่ได้เล่นตัวแต่ไม่รู้จริงๆ

เห็นเค้าว่า utf8 มันใช้ไทยได้และได้หลายภาษาผมก็สนใจ
เลยลอง asp+mysql utf8 แต่ติดขัดเลยย้ายมา php+mysql utf8
ส่วนเรื่อง utf8_general_ci นั้นผมเห็นมันเป็นค่ามาตรฐานเดิมๆที่มาตอนติดตั้ง แล้วตัวอย่างสำเร็จรูปก็ใช้แบบนี้กัน ผมก็เลยเอามั่ง แค่นั้นเองครับ
ผมไม่รู้จริงๆ
Date : 2009-08-03 01:35:42 By : mr.v
 


 

No. 13



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


แล้วของคุณ ru ดูไทยใน myadmin ได้ยังอะ?


ของคุณ ling ต้องเช็คให้แม่นๆด้วยนะครับว่า ทั้ง db ทั้ง table และ field เป็น utf8_general_ci หมด
จากนั้นใส่
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");

หลังจากเปิดใช้ mysql ในตอนแรก

มันก็น่าจะได้นะครับ เพราะผมก็ใช้เท่านี้แหละ ได้ทุกภาษาเลยทั้ง export import ไม่มีเพี้ยน
Date : 2009-08-03 01:39:32 By : mr.v
 


 

No. 14



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


อีกนิด
ที่ผมบอกว่าเข้าไปใน phpmyadmin หน้าแรกแล้วปรับ collation นั้น ตรงนี้นะครับ

ตรงขีดส้มๆ
ปรับให้ตรงกับตารางน่ะครับ และทั้งในตาราง ใน db ในช่องย่อยๆต่างๆควรเป็นเหมือนกันครับ
ซึ่งถ้าทำตามนี้ ผมยืนยันว่าดูได้รู้เรื่องแน่
แต่..
การกรอก insert จากเว็บเข้าไป ต้องยัดเข้าไปในแบบ charset utf-8 และ mysql charset ที่ผมเอามาแปะให้ดูนะครับ
ผมทำตามนี้แล้วได้ทุกภาษาเลย
ส่วนข้อมูลเก่าๆที่ insert เข้าไปก่อนหน้าแล้ว เป็นไปได้ว่าอาจจะอ่านไม่ออกเพราะเข้ารหัสคนละแบบกันมาก่อน
Date : 2009-08-03 01:48:00 By : mr.v
 


 

No. 15



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


รูปอีกหน่อยครับ








ขอโทษที่ต้องหลายโพสท์ติดๆ เพราะนึกได้ว่าโชว์ให้ชัดๆดีกว่าน่ะครับ
เผื่อจะได้เห็นว่าตรงไหนพลาดไป
ลองทำอย่างที่ผมแนะนำก็ได้ สร้าง db มาใหม่อันนึง ทำตารางอะไรๆพร้อม แล้ว insert ปิ๊ง
ไทยออกแน่นอน
Date : 2009-08-03 01:56:55 By : mr.v
 


 

No. 16



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


จากที่ค้นเจอ มันดีกันคนละอย่างครับ
http://forums.mysql.com/read.php?103,187048,188748#msg-188748

ที่มา http://www.thaihosttalk.com/index.php?topic=20431.0
Date : 2009-08-03 02:40:25 By : plakrim
 

   

ค้นหาข้อมูล


   
 

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