<%
Dim strURL
Dim cnnSearch
Dim rstSearch
Dim strSQL
Dim strSearch
Dim arrTerms
Dim strOperator
Dim I
strURL = Request.ServerVariables("URL")
strSearch = Request.QueryString("search")
If LCase(Request.QueryString("operator")) = "and" Then
strOperator = "AND"
Else
strOperator = "OR"
End If%>
<form action="<%= strURL %>" method="get">
<input name="search" value="<%= strSearch %>" />
<select name="operator">
<option value="or" <% If strOperator="OR" Then Response.Write(" selected=""selected""")%>>Any Term</option>
<option value="and"<% If strOperator="AND" Then Response.Write(" selected=""selected""")%>>All Terms</option>
</select>
<input type="submit" />
</form>
<%
if pageNo="" then pageNo = 1
If strSearch <> "" Then
Set cnnSearch = Server.CreateObject("ADODB.Connection")
cnnSearch.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb") & ";"
strSearch = Replace(strSearch, "'", "''")
arrTerms = Split(strSearch, " ")
strSQL = "SELECT * FROM sample WHERE "
For I = LBound(arrTerms) to UBound(arrTerms)
strSQL = strSQL & "( last_name LIKE '%" & arrTerms(I) & "%'"
strSQL = strSQL & " OR first_name LIKE '%" & arrTerms(I) & "%')"
If I < UBound(arrTerms) Then
strSQL = strSQL & " " & strOperator & " "
End If
Next 'I
strSQL = strSQL & " ORDER BY id desc;"
Set rstSearch = cnnSearch.Execute(strSQL)
%>
<%Do While Not rstSearch.EOF %>
<%= rstSearch.Fields("first_name").Value %>..........<%= rstSearch.Fields("last_name").Value %><br />
<%= rstSearch.Fields("sales").Value %><br />
<%
rstSearch.MoveNext
Loop
rstSearch.Close
Set rstSearch = Nothing
cnnSearch.Close
Set cnnSearch = Nothing
%>
If LCase(Request.QueryString("operator")) = "and" Then
strOperator = "AND"
Else
strOperator = "OR"
End If%>
<form action="<%= strURL %>" method="get">
<input name="search" value="<%= strSearch %>" />
<select name="operator">
<option value="or" <% If strOperator="OR" Then Response.Write(" selected=""selected""")%>>Any Term</option>
<option value="and"<% If strOperator="AND" Then Response.Write(" selected=""selected""")%>>All Terms</option>
</select>
<input type="submit" />
</form>
<%
if pageNo="" then pageNo = 1
If strSearch <> "" Then
Set cnnSearch = Server.CreateObject("ADODB.Connection")
cnnSearch.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb") & ";"
strSearch = Replace(strSearch, "'", "''")
arrTerms = Split(strSearch, " ")
strSQL = "SELECT * FROM sample WHERE "
For I = LBound(arrTerms) to UBound(arrTerms)
strSQL = strSQL & "( last_name LIKE '%" & arrTerms(I) & "%'"
strSQL = strSQL & " OR first_name LIKE '%" & arrTerms(I) & "%')"
If I < UBound(arrTerms) Then
strSQL = strSQL & " " & strOperator & " "
End If
Next 'I
strSQL = strSQL & " ORDER BY id desc;"
Set rstSearch = cnnSearch.Execute(strSQL)
%>
<%Do While Not rstSearch.EOF %>
<%= rstSearch.Fields("first_name").Value %>..........<%= rstSearch.Fields("last_name").Value %><br />
<%= rstSearch.Fields("sales").Value %><br />
<%
rstSearch.MoveNext
Loop
rstSearch.Close
Set rstSearch = Nothing
cnnSearch.Close
Set cnnSearch = Nothing
%>
ตาม code นี้จะsearch แบบ and , or ได้อย่างไรคะ
แบ่งหน้าได้แต่เวลาค้นหามันไม่ครอบคลุมเหมือนเวลาเราใช้ code แรกที่สามารถเลือก and or ได้
<% Option Explicit %>
<html>
<head>
<title>ThaiCreate.Com ASP & Microsoft Access Tutorial</title>
</head>
<body>
<form name="frmSearch" method="get" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<%=Request.QueryString("txtKeyword")%>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<%
if Request.QueryString("txtKeyword") <> "" Then
Dim Conn,strSQL,objRec,strKeyword
strKeyword = Request.QueryString("txtKeyword")
Set Conn = Server.Createobject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("mydatabase.mdb"),"" , ""
'*** Search By Name or Email ***'
strSQL = "SELECT * FROM customer "
strSQL = strSQL & "WHERE (Name LIKE '%"& strKeyword &"%' "
strSQL = strSQL & "or Email LIKE '%"& strKeyword &"%' ) "
Set objRec = Server.CreateObject("ADODB.Recordset")
objRec.Open strSQL, Conn, 1,3
If objRec.EOF Then
Response.write (" Not found record.")
Else
Dim PageLen,PageNo,TotalRecord,TotalPage,No,intID
PageLen = 2
PageNo = Request.QueryString("Page")
if PageNo = "" Then PageNo = 1
TotalRecord = objRec.RecordCount
objRec.PageSize = PageLen
TotalPage = objRec.PageCount
objRec.AbsolutePage = PageNo
%>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<%
No=1
Do While Not objRec.EOF and No <= PageLen
%>
<tr>
<td><div align="center"><%=objRec.Fields("CustomerID").Value%></div></td>
<td><%=objRec.Fields("Name").Value%></td>
<td><%=objRec.Fields("Email").Value%></td>
<td><div align="center"><%=objRec.Fields("CountryCode").Value%></div></td>
<td align="right"><%=objRec.Fields("Budget").Value%></td>
<td align="right"><%=objRec.Fields("Used").Value%></td>
</tr>
<%
No = No + 1
objRec.MoveNext
Loop
%>
</table>
Total : <%=TotalRecord%> Page <%=PageNo%> All Page <%=TotalPage%>
<% IF Cint(PageNo) > 1 then %>
<a href="<%Request.ServerVariables("SCRIPT_NAME")%>?txtKeyword=<%=strKeyword%>&Page=1"><< First</a>
<a href="<%Request.ServerVariables("SCRIPT_NAME")%>?txtKeyword=<%=strKeyword%>&Page=<%=PageNo-1%>">< Back</a>
<% End IF%>
<% IF Cint(PageNo) < TotalPage Then %>
<a href="<%Request.ServerVariables("SCRIPT_NAME")%>?txtKeyword=<%=strKeyword%>&Page=<%=PageNo+1%>">Next ></a>
<a href="<%Request.ServerVariables("SCRIPT_NAME")%>?txtKeyword=<%=strKeyword%>&Page=<%=TotalPage%>">Last >></a>
<% End IF%>
<br>
Go to
<% For intID = 1 To TotalPage%>
<% if intID = Cint(PageNo) Then%>
<b><%=intID%></b>
<%Else%>
<a href="<%Request.ServerVariables("SCRIPT_NAME")%>?txtKeyword=<%=strKeyword%>&Page=<%=intID%>"><%=intID%></a>
<%End IF%>
<%Next%>
<%
objRec.Close()
Conn.Close()
Set objRec = Nothing
Set Conn = Nothing