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

HOME > PHP > PHP Forum > Ajax Search Record sql server แก้ไข ปัญหา LIMIT ของ SQL SERVER โดยใช้คำสั่ง select top



 

Ajax Search Record sql server แก้ไข ปัญหา LIMIT ของ SQL SERVER โดยใช้คำสั่ง select top

 



Topic : 083481



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



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




สำหรับคนที่เจอปัญหา การค้นหาแบ่งpage โดยใช้ ajax กับ sqlserver แล้วมีปัญหาเรื่องLIMIT ครับ โดยอ้างอิงโค๊ดจาก https://www.thaicreate.com/tutorial/ajax-search-record-paging.html

เป็นการแก้ไข ปัญหา LIMIT ของ SQL SERVER โดยใช้คำสั่ง select top แทนครับ ผมลัพธ์ที่ออกมาเหมือนกันครับ

AjaxPHPSearchRecordPaging1.php
Code (PHP)
<?php
	/*** By Weerachai Nukitram***/
	/***  http://www.ThaiCreate.Com ***/	
?>
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
</head>
<script language="JavaScript">
	   var HttPRequest = false;

	   function doCallAjax(Search,Page) {
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
	
			var url = 'AjaxPHPSearchRecordPaging2.php';
			var pmeters = 'mySearch='+Search;

		  var pmeters = "mySearch=" + Search +
						"&myPage=" + Page;

			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("mySpan").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {
				   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
				  }
				
			}

	   }
	</script>
<body Onload="JavaScript:doCallAjax('','');">
<h1>My Customer</h1>
<form name="frmMain">
Search <input type="text" name="txtSearch" id="txtSearch">
<input type="button" name="btnSearch" id="btnSearch" value="Search" OnClick="JavaScript:doCallAjax(document.getElementById('txtSearch').value,'1');">
<br><br>
<span id="mySpan"></span>
</form>
</body>
</html>




AjaxPHPSearchRecordPaging2.php


Code (PHP)
<?php
	/*** By Weerachai Nukitram ***/
	/***  http://www.ThaiCreate.Com ***/

$strSearch = $_POST["mySearch"];
$strPage = $_POST["myPage"];

if($strSearch!=""){
include "connect.php";
$strSQL = "SELECT * FROM LOCATION WHERE LOCID LIKE '%".$strSearch."%' and RECSTATUS='1' ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mssql_num_rows($objQuery);


$Per_Page = 5;   // Per Page

$Page = $strPage;
if(!$strPage)
{
	$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 ="SELECT TOP $Per_Page * FROM LOCATION WHERE (LOCID LIKE '%".$strSearch."%' and RECSTATUS='1')and LOCID NOT IN(SELECT TOP $Page_Start LOCID FROM LOCATION where (LOCID LIKE '%".$strSearch."%' and RECSTATUS='1')ORDER BY LOCID asc)ORDER BY LOCID asc";
$objQuery  = mssql_query($strSQL);


?>
<table width="600" border="1">
  <tr>
    <th width="91"> <div align="center">LOCID </div></th>
		<th width="98"> <div align="center">LOCCODE </div></th>
		<th width="198"> <div align="center">LOCNAME_E </div></th>
		<th width="97"> <div align="center">LOCNAME_T </div></th>
		<th width="59"> <div align="center">ADDRTB </div></th>
		<th width="71"> <div align="center">ADDRAP </div></th>
  </tr>
<?
while($objResult = mssql_fetch_array($objQuery))
{
?>
  <tr>
    <td><div align="center"><?=$objResult["LOCID"];?></div></td>
    <td><?=$objResult["LOCCODE"];?></td>
    <td><?=$objResult["LOCNAME_E"];?></td>
    <td><div align="center"><?=$objResult["LOCNAME_T"];?></div></td>
    <td align="right"><?=$objResult["ADDRTB"];?></td>
    <td align="right"><?=$objResult["ADDRAP"];?></td>
  </tr>
<?
}
?>
</table>
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page) 
{
	echo " <a href=\"JavaScript:doCallAjax(document.getElementById('txtSearch').value,'$Prev_Page')\"><< Back</a> ";
}

for($i=1; $i<=$Num_Pages; $i++){
	if($i != $Page)
	{
		echo "[ <a href=\"JavaScript:doCallAjax(document.getElementById('txtSearch').value,'$i')\">$i</a> ]";
	}
	else
	{
		echo "<b> $i </b>";
	}
}
if($Page!=$Num_Pages)
{
	echo " <a href=\"JavaScript:doCallAjax(document.getElementById('txtSearch').value,'$Next_Page')\">Next >></a> ";
}
mssql_close($objConnect);
}
?>


เนื่องจาก เป็นกระทู้แรก หากมีอะไรผิดพลาด ผมต้อขออภัยไว้นะที่นี้ด้วยนะครับ



Tag : PHP, Ms SQL Server 2008, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-09-05 13:52:37 By : arnon011130 View : 1041 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

แจ่มครับ แต่ Query น่าจะยังช้าอยู่ครับ เห็นใช้ SUB SELECT ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-05 16:19:07 By : mr.win
 


 

No. 2



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

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

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


แจ๋วววว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-05 22:04:53 By : compiak
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Ajax Search Record sql server แก้ไข ปัญหา LIMIT ของ SQL SERVER โดยใช้คำสั่ง select top
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่