|
|
|
ปัญหาเรื่องภาษาไทยครับ update sql ไม่เข้า ทั้งๆที่่กำหนดเป็น utf-8 แล้ว |
|
|
|
|
|
|
|
คือว่าผมได้สร้างตัวคัดเลือกเทป ซึ่งใช้ หมายเลขเทป เป็นตัวเรียกข้อมูลขึ้นมาโชว์ในตาราง จากนั้นก็ใช้ radio button เลือกว่าจะเก็บเทปนั้นหรือไม่ ตามรูปข้างล่างครับ
ซึ่งถ้าในกรณีที่หมายเลขเทปเป็นตัวเลขอย่างเดียว ก็ update sql ได้ไม่มีปัญหา แต่ถ้าหมายเลขเทปมีภาษาไทยเข้ามาผสมด้วย จะ update sql ไม่ได้เลยอ่ะคับ อย่างเช่น หมายเลขเทป กข501 เป็นต้นอ่ะคับ รบกวนผู้รู้ทุกท่านช่วยผมด้วยนะครับ
ส่วนข้างล่างนี่คือโค้ดส่วนหน้าฟอร์มเรียกข้อมูลจาก sql มาโชว์คับ
Code (PHP)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>NewsTape</title>
<link rel="stylesheet" href="css/css.style.css" />
</head>
<body>
<div class="header" title="header">
<div class="BgColor"></div><div class="BgHeader"></div>
</div>
<? session_start(); ?>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script language="javascript">
function fxUpdate(id,value,name)
{
// alert(id);
// alert(value);
// alert(name);
$.ajax(
{
url: "UpdateStatus.php",
data: "id="+id+"&value="+value+"&name="+name,
dataType: "html",
success: function(data)
{
alert (data);
//alert ("success !!");
},
error: function(data)
{
alert (data);
alert ("fail !!");
}
});
}
</script>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<div class="SearchArea">
<table class="TableSearch" width="100%">
<tr>
<td><b>หมายเลขเทป</b>
<input name="txtTapeNo" type="text" class="txtField" id="txtTapeNo" value="<?=$_GET["txtTapeNo"];?>" size="6">
<input type="submit" value="ค้นหา"></td>
</tr>
</table>
</div>
</form>
<form name='frmmain' action='UpdateStatus.php' method='post'>
<?
if($_GET["txtTapeNo"] != "")
{
$_SESSION["TapeNo"] = $_GET["txtTapeNo"];
//echo $_SESSION["TapeNo"]."<<<<";
$objConnect = mysql_connect("10.1.15.222","newsweb","newsweb") or die("Error Connect to Database");
$objDB = mysql_select_db("newstape");
$strSQL = "SET NAMES 'utf8'";
mysql_query($strSQL);
$strSQL = "SELECT stocktape.tapeno,stocktape.storyno,stocktape.evtdate,stocktape.status,CONCAT(stocktape.headline1,stocktape.headline2) headline,CONCAT(stocktape.detail1,stocktape.detail2,stocktape.detail3,stocktape.detail4,stocktape.detail5,stocktape.detail6) Detail,GROUP_CONCAT(stocktapekeyword.keyword) tagKeyword
FROM `stocktape`
LEFT JOIN `stocktapekeyword` ON stocktape.tapeno=stocktapekeyword.tapeno AND stocktape.storyno=stocktapekeyword.storyno
WHERE stocktape.tapeno='".$_GET["txtTapeNo"]."'
GROUP BY stocktape.tapeno,stocktape.storyno";
//$strSQL = "SET character_set_results=UTF-8";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
while($objResult = mysql_fetch_array($objQuery))
$Per_Page = 20; // fix for 5 head news Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$strSQL .=" order by stocktape.tapeno ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
?>
<table class="GridView" width="100%">
<tr class="HeadGrid">
<th width="48"> <div align="center">เรื่องที่</div></th>
<th width="82"> <div align="center">วันที่ </div></th>
<th width="186"> <div align="center">หัวข้อข่าว </div></th>
<th width="293"> <div align="center">รายละเอียด </div></th>
<th width="145"> <div align="center">Keyword</div></th>
<th width="37"> <div align="center">รอ</div></th>
<th width="64"><div align="center">จัดเก็บ</div></th>
<th width="67"><div align="center">ไม่จัดเก็บ</div></th>
</tr>
<?
$i=0;
while($objResult = mysql_fetch_array($objQuery))
{
$i++;
if($i%2==0)
{
$bg = "#CCE9FD";
}
else
{
$bg = "#FFFFFF";
}
?>
<tr bgcolor="<?=$bg;?>">
<td>
<div align="center"><?=$objResult["storyno"];?></div>
</td>
<td align="center">
<?
$EnDate = $objResult["evtdate"];
$ThDate = explode("-","$EnDate");
$ThYear = $ThDate[0] + "543";
$ThMonth = $ThDate[1];
$ThDay = $ThDate[2];
if($ThDate != "" && $ThMonth != "" && $ThDate[0] != "")
{
echo $ThDay."/".$ThMonth."/".$ThYear;
}
else
{
echo "ไม่มีข้อมูลวันที่";
}
?>
</td>
<td>
<? if($objResult["headline"] != "")
{
echo $objResult["headline"];
}
else
{ ?>
<center><? echo "ไม่มีข้อมูลหัวข้อข่าว"; ?></center>
<? }
?>
</td>
<td>
<? if($objResult["Detail"] != "")
{
echo $objResult["Detail"];
}
else
{ ?>
<center><? echo "ไม่มีข้อมูลรายละเอียดข่าว"; ?></center>
<? }?>
<br/>
</td>
<td><? if($objResult["tagKeyword"] != "")
{
echo $objResult["tagKeyword"];
}
else
{ ?>
<center> <? echo "ไม่มีข้อมูล keyword"; ?> </center>
<? }?>
</td>
<? $RdoName = $objResult["storyno"];
$TpeNo = $_GET["txtTapeNo"];
//$RdoName = $TpeNo.$RdoName;
//echo $RdoName;
?>
<td align="center">
<input type="radio" onClick="fxUpdate(this.id,this.value,this.name)" name="<?=$RdoName;?>" id="W" value="<?=$TpeNo;?>"
<? if ($objResult["status"] == "W")
{
echo 'checked';
}
?> />
</td>
<td align="center">
<input type="radio" onClick="fxUpdate(this.id,this.value,this.name)" name="<?=$RdoName;?>" id="Y" value="<?=$TpeNo;?>"
<? if ($objResult["status"] == "Y")
{
echo 'checked';
}
?>
/>
</td>
<td align="center">
<input type="radio" onClick="fxUpdate(this.id,this.value,this.name)" name="<?=$RdoName;?>" id="N" value="<?=$TpeNo;?>"
<? if ($objResult["status"] == "N")
{
echo 'checked';
}
?>
/>
</td>
</tr>
<?
}
?>
</table>
</form>
<br>
ทั้งหมด <?= $Num_Rows;?> รายการ : จำนวน <?=$Num_Pages;?> หน้า :
<?
if($Prev_Page)
{
echo " <a style='text-decoration:none;' href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&txtTapeNo=$_GET[txtTapeNo]'><< หน้าที่แล้ว</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "| <a style='text-decoration:none;' href='$_SERVER[SCRIPT_NAME]?Page=$i&txtTapeNo=$_GET[txtTapeNo]'>$i</a> |";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a style='text-decoration:none;' href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&txtTapeNo=$_GET[txtTapeNo]'>หน้าต่อไป>></a> ";
}
mysql_close($objConnect);
}
?>
</body>
</html>
ส่วนตัวนี้คือตัว update ครับ
Code (PHP)
<?php
session_start();
header ('Content-type: text/html; charset=utf-8');
//include "../inc/db_connect_video.inc.php";
$objConnect = mysql_connect("10.1.15.222","newsweb","newsweb") or die("Error Connect to Database");
$objDB = mysql_select_db("newstape");
if($objDB)
{
//echo "Connect to Database";
}
else
{
//echo "Connection fail !!";
}
//$strSQL = "SET NAMES 'utf8'";
//mysql_query($strSQL);
$status = substr($id,0,1);
$tapeno = $_SESSION["TapeNo"];
//echo $tapeno."//****";
$storyno = $name;
//$status = iconv('utf-8', 'windows-874', $status);
//$tapeno = iconv('utf-8', 'windows-874', $tapeno);
//echo ">>>>".$tapeno;
$strSQL = " UPDATE stocktape SET status = '$status' WHERE tapeno = '$tapeno' AND storyno = '$storyno' ";
echo $strSQL;
mysql_query($strSQL) or die (mysql_error());
if(mysql_query($strSQL))
{
}
?>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-07-31 09:34:42 |
By :
resonancez00 |
View :
1675 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฝั่ง Code เป็น utf-8 แล้ว ฝั่ง database เป็น utf-8 ยังอ่าครับ
https://www.thaicreate.com/community/php-mysql-thai.html
Link
|
ประวัติการแก้ไข 2012-07-31 10:27:21
|
|
|
|
Date :
2012-07-31 10:24:37 |
By :
lootboom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฝั่งดาต้าเบสเป็น utf-8 แล้วคับ
|
|
|
|
|
Date :
2012-07-31 10:48:25 |
By :
resonancez00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนในไฟล์ update ตรวตัว connect ดูครับ
Code (PHP)
$connects=mysql_connect("10.1.15.222","newsweb","newsweb");
mysql_db_query(newstape,'SET NAMES UTF8',$connects)or die("can not connect database");
|
|
|
|
|
Date :
2012-07-31 11:25:06 |
By :
slurpee55555 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
- กรณีที่กำหนด Collation เป็น utf8_unicode_ci ให้ใช้
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
mysql_query("SET NAMES UTF8");
- กรณีที่กำหนด Collation อื่น ๆ ให้ใช้
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
GO TO : ปัญหาภาษาไทย PHP กับ MySQL ??????????
|
|
|
|
|
Date :
2012-07-31 11:34:53 |
By :
pokultra |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วคับ ตามที่ MR.Bass โพสไว้ ขอบคุณมากๆครับ
|
|
|
|
|
Date :
2012-07-31 11:39:31 |
By :
resonancez00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|