ตอนรับค่า ที่เป็นค่าpost ตอนแสดงข้อมูล ก็เป็นภาษาไทย แต่พอinsert database กลับไม่ได้อะครับ
อันนี้คือหน้าที่จะส่งค่าครับ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>รายละเอียด Landmark</title>
</head>
<body>
<script language="JavaScript">
<!--
function check()
{
var v1 = document.form1.MName.value;
var v2 = document.form1.typepark.value;
var v3 = document.form1.MRadius.value;
var v4 = document.form1.MRadius.value;
if ( v1.length==0)
{
alert("กรุณาใส่ชื่อแลนด์มารค์");
document.form1.MName.focus();
return false;
}
else if (v2.length==0)
{
alert("กรุณาเลือกประเภทสถานที่");
document.form1.typepark.focus();
return false;
}
else if (v3.length==0)
{
alert("กรุณาระบุรัศมีพื้นที่");
document.form1.MRadius.focus();
return false;
}
}
document.form1.submit();
//-->
</script>
<form name="form1" method="post" action="completemark.php" onsubmit="return check()">
<table width="434" height="282" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td width="153"></td>
<td width="281" height="19"></td>
<tr>
<td><div align="right">ชื่อแลนด์มารค์</div></td>
<td height="19"><input type="text" name="MName" size="30"></td>
<tr>
<td><div align="right">Group</div></td>
<td height="31"><input name="MGroupName" type="text" value="<?=$_GET['group'];?>" size="30"></td>
<tr>
<td><div align="right">ที่อยู่/หมายเหตุ</div></td>
<td height="28"><textarea name="MTextArea" id="Tarea">-</textarea></td>
<tr>
<td><div align="right">ละติจูด(รู้ง)</div></td>
<td height="27"><input name="MLat" type="text" value="<?= $_GET['glat'];?>" size="30" ></td>
<tr>
<td><div align="right">ลอนจิจูต(แวง)</div></td>
<td height="28"><input name="MLon" type="text" value="<?=$_GET['glon'];?>" size="30"></td>
<tr>
<td><div align="right">ประเภทสถานที่</div></td>
<td height="26"><select name="typepark" id="txtDescription1" style="BORDER-RIGHT: rgb(124,163,222) 1px solid; BORDER-TOP: rgb(124,163,222) 1px solid; FONT-SIZE: x-small; BORDER-LEFT: rgb(124,163,222) 1px solid; BORDER-BOTTOM: rgb(124,163,222) 1px solid; FONT-FAMILY: Tahoma">
<option selected></option>
<option value="1" >ลูกค้า (Customer)</option>
<option value="2">โกดัง (Depot)</option>
</select></td>
<tr>
<td><div align="right">รัศมี</div></td>
<td height="28"><input type="text" name="MRadius" size="5">
กิโลเมตร</td>
<tr>
<td height="19"><div align="right">ลักษณะพิเศษ
</div></td>
<td height="19"><select name="typespecial" id="txtDescription1" style="BORDER-RIGHT: rgb(124,163,222) 1px solid; BORDER-TOP: rgb(124,163,222) 1px solid; FONT-SIZE: x-small; BORDER-LEFT: rgb(124,163,222) 1px solid; BORDER-BOTTOM: rgb(124,163,222) 1px solid; FONT-FAMILY: Tahoma">
<option selected value="Normal" >Normal</option>
<option value="Denined">Denined</option>
</select></td>
<tr>
<td height="19"><div align="right"></div></td>
<td height="19"> </td>
<tr>
<td height="19">
<div align="right">
<input type="submit" name="submit" value="บันทึก" >
</div></td>
<td height="19"> </td>
</table>
</form>
<?
?>
</body>
</html>
ส่วนข้อความนี้คือหน้ารับค่าแล้ว insert ลงฐานข้อมูลครับ
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Success</title>
</head>
<body>
<?
$b = $_POST['MRadius'];
$lat = $_POST['MLat'];
$lon = $_POST['MLon'];
$mname2 = $_POST['MName'];
$mname3 = iconv('UTF-8','TIS-620', $mname2);
//echo $mname3;
//$remark = $_POST['LRemark'];
$a = $b / 111 ;
$minlat = $lat - $a ;
$maxlat = $lat + $a ;
$minlon = $lon - $a ;
$maxlon = $lon + $a ;
//if ($remark == ''){
//$remark2 = "-" ;
//}
//echo $remark2 ;
//echo $maxlat ;
$objConnect = mysql_connect("localhost","root","1128") or die("Error Connect to Database");
$objDB = mysql_select_db("info");
//mysql_query("SET NAMES utf-8");
$strSQL = "INSERT INTO landmark ";
$strSQL .="(LLon,LLat,LMinLon,LMaxLon,LMinLat,LMaxLat,LStop,LPicture,LType,LMask,LDuration,LName,LSType,LGroup,LRemark,LRad,IDL,IDH) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["MLon"]."','".$_POST["MLat"]."',$minlon,$maxlon,$minlat,$maxlat,'1' ";
$strSQL .=",'".$_POST["typepark"]."','".$_POST["typepark"]."','0','0.00208333333333333',$mname3,'".$_POST["typespecial"]."','".$_POST["MGroupName"]."','".$_POST["MTextArea"]."','".$_POST["MRadius"]."','0','0000000000') ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
if($objQuery)
{
echo "<center>บันทึกเรียบร้อย</center>";
}
else
{
echo "Error Save [".$strSQL."]";
}
mysql_close($objConnect);
?>
</body>
</html>
ผลที่ออกมา
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '���,'Normal','ATSDEMO','-','1','0','0000000000')' at line 1
ถ้ามีการใส่ข้อความที่เป็นภาษาอังกฤษจะไม่เป็นไรครับ แต่พอinsert เป็นภาษาไทยทีไรเป็นแบบนี้ ทุกทีครับ ใช้iconvในการแปลงแล้วก็ไม่หายครับ
ส่วนดาต้าเบสที่ผมใช้เป็น mysql ครับ เซต ฐานข้อมูลเป็น charset tis-620 collation tis620_thai_ci
collume charset : tis620
collume collate: tis620_thai_ci
ขอบคุณทุกคำแนะนำล่วงหน้าครับTag : PHP, MySQL
Date :
2011-01-12 17:15:27
By :
moobin29
View :
1028
Reply :
4
//mysql_query("SET NAMES utf-8");
ลองใช้ตอน query base
mysql_db_query("ชื่อดาต้าเบส",SET NAMES tis620");
mysql_query("set NAMES tis620");
iconv <== บางอันมันก็ไม่ลองรับคับ
Date :
2011-01-12 17:22:17
By :
teez1232002
จะลองดูครับได้ไงเดี๋ยวมารายงานครับ
Date :
2011-01-12 17:26:02
By :
moobin29
ได้แล้วครับ ขอบคุณท่านทั้งสองเป็นอย่างสูงครับ
Date :
2011-01-12 17:41:33
By :
moobin29
Load balance : Server 05