|
|
|
สอบถามปัญหา ส่งค่า form ค้นหาภาษาไทยแต่มันขึ้น ?????? แก้ยังไงครับ |
|
|
|
|
|
|
|
เวลาเรียกข้อมูลภาษาไทยแสดงไทยปกติ พอเวลาค้นหาเรียกชื่อมันจะขึ้น ???????????????
Code (PHP)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$strKeyword = null;
if(isset($_POST["txtKeyword"]))
{
$strKeyword = $_POST["txtKeyword"];
}
if(isset($_GET["txtKeyword"]))
{
$strKeyword = $_GET["txtKeyword"];
}
?>
<form align="center" name="frmSearch" method="post" action="index.php?admin=search">
<div class="form-group">
<label for="exampleInputEmail1">ค้นหา </label>
<input name="txtKeyword" class="form-control" type="text" placeholder="นนทิการ" id="txtKeyword" value="<?php echo $strKeyword;?>">
<input type="submit" class="btn btn-danger" value="เริ่มค้นหา">
</div>
</form>
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "xxxxxxxxxxxxxxxxxxx";
$userName = "xxxxxxxxxxxxxxx";
$userPassword = 'xxxxxxxxxxxxxxxx';
$dbName = "xxxxxxxxxxxxxxxxxxxxxxxx";
$connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true, "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "SELECT * FROM xxxx WHERE xxxx '%".$strKeyword."%' ";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$query = sqlsrv_query( $conn, $sql , $params, $options );
$num_rows = sqlsrv_num_rows($query);
$per_page = 100; // Per Page
$page = 1;
if(isset($_GET["Page"]))
{
$page = $_GET["Page"];
}
$prev_page = $page-1;
$next_page = $page+1;
$row_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;
}
$row_end = $per_page * $page;
if($row_end > $num_rows)
{
$row_end = $num_rows;
}
$sql = " SELECT c.* FROM (
SELECT ROW_NUMBER() OVER(ORDER BY CustomerID) AS RowID,* FROM xxxx WHERE xxx LIKE '%".$strKeyword."%'
) AS c
WHERE c.RowID > $row_start AND c.RowID <= $row_end
";
$query = sqlsrv_query( $conn, $sql);
?>
<table width="100%" border="1">
<tr>
<th bgcolor="#333333" width="91"> <div align="center"><font color="#FFFFFF">name </font></div></th>
</tr>
<?php
while($result = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{
?>
<tr>
<td width="10%" bgcolor="#CCCCCC"><div align="center"><?php echo $result["name"];?></div></td>
</tr>
<?php
}
?>
</table>
<br>
จำนวนทั้งหมด <?php echo $num_rows;?>
<?php
sqlsrv_close($conn);
?>
Tag : PHP, Ms SQL Server 2008
|
ประวัติการแก้ไข 2015-04-01 20:12:10 2015-04-01 20:14:54 2015-04-01 20:16:14
|
|
|
|
|
Date :
2015-04-01 20:10:44 |
By :
freedom454 |
View :
631 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
ส่วนแสดงผลที่ต้องการ
</body>
</html>
ใส่ tag เหล่านี้ให้ครบด้วยครับ
ส่วน database ก็ปรับ type ของ field ให้เป็น nvarchar เพื่อรองรับภาษาไทย
จะให้เป็น tis620 หรือ utf8 ก็ว่ากันไป แต่แนะนำให้ใช้ utf8 จะเป็น สากล มากกว่า
แต่ถ้ารัก เอกลักษณ์ไทย ก็ tis620 ก็ไม่ว่ากัน
|
ประวัติการแก้ไข 2015-04-01 21:05:21
|
|
|
|
Date :
2015-04-01 21:04:54 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ท่านครับเหมือนเดิมใส่แท๊กแล้วชนิดฟิลด์ก็เปลี่ยนแล้ว เวลาค้นหามันก็ยังเป็นเหมือนเดิม
|
|
|
|
|
Date :
2015-04-01 21:24:39 |
By :
freedom454 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ลองเพิ่มเพิ่มข้อมูลเข้าไปใหม่หรือเปล่าครับ
เพราะอาจมีปัญหากับข้อมูลเก่าก่อนเปลี่ยน type ครับ
insert into table (field1 , field2 ) values( N'ทดสอบภาษาไทย', N'สวัสดีครับ');
|
|
|
|
|
Date :
2015-04-02 06:02:03 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|