元の三流解説は、
三流君ASP:ADO SQL Like演算子で部分検索する
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・
SQL SELECT WHERE句で Like演算子を使用して部分検索する ソースコード
<%@LANGUAGE=VBScript%> <% qqq = Trim(Request.QueryString("q")) 'パラメータ %> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>SQL SELECT WHERE句で Like演算子を使用して部分検索する <%=qqq%></title> </head> <body> <h1>SQL SELECT WHERE句で Like演算子を使用して部分検索する <%=qqq%></h1> test087-1.asp<br> <hr> cnt_etc.mdb から訪問されたURLをグループ化して集計、降順に表示<br> <strong>Like演算子</strong>でデータを絞り込んでみました。<br> Select TOP 20 URL, Count(URL) As URLCNT ~<br> <font color="red">Where URL <strong>Like</strong> '%XXXX%'<br> と受け取ったq=を設定してみます</font><br> <hr> <FORM ACTION="test087-1.asp" METHOD="GET"> 絞り込む検索条件を入れて、再検索ボタンを押してください。<br> 検索条件:<INPUT TYPE="TEXT" NAME="q" VALUE="<%=qqq%>"> <INPUT TYPE="submit" VALUE="再検索"><br> ※例)pc auto drink 500yenなどなど、URLの一部を入力<br> </FORM> <hr> <% 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '.Provider?プロバイダー?通信会社?じゃなくって 'データアクセスにはJet.OLEDB.4.0を使うことを設定 db.Provider = "Microsoft.Jet.OLEDB.4.0" '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す db.ConnectionString = Server.MapPath("cnt_etc.mdb") 'やっとデータベースを開ける db.open 'お約束のレコードセットの作成 'GROUP BY句 で グループ化 Count関数で集計 ORDER BY句で並べ替え 'TOP20を指定 Where URL LIKE '%XXX%'で条件を指定する strSQL = "Select TOP 20 URL, Count(URL) As URLCNT " strSQL = strSQL & "From log " 'パラメータをチェックする(test087-1.asp?q=xxxxxでもらう) qqq = Trim(Request.QueryString("q")) '両端のスペースを除いて受け取る If qqq <> "" Then 'データありの時、Like演算子の条件を追加する strSQL = strSQL & "Where URL Like '%" & qqq & "%' " Response.Write "条件[" & qqq & "]を受け取りました<br>" Else Response.Write "q=のパラメータが無かったよ(笑)<br>" 'データ無しの時 End If strSQL = strSQL & "GROUP BY URL " strSQL = strSQL & "ORDER BY Count(URL) DESC" 'オマケで画面にデータ表示 Response.Write "<hr>発行する(した)SQL文は<br><B><font color='green'>" Response.Write strSQL & "</font></B><br>です<hr>" Set rs = db.Execute(strSQL) 'データの表示をテーブルで行う Response.Write "<TABLE Border='1'>" '見出しをバカっぽく、そのまま書き込む Response.Write "<TR>" Response.Write "<TD>No.</TD>" Response.Write "<TD>URL</TD>" Response.Write "<TD>訪問者件数</TD>" Response.Write "</TR>" 'EOFまでループ nCNT = 1 Do While rs.EOF = False '.EOFがFalseの間 Response.Write "<TR>" '内容を表示する Response.Write "<TD>" & nCNT & "</TD>" Response.Write "<TD><A HREF='" & rs.Fields.Item("URL") & "' Target='_top'>" Response.Write rs.Fields.Item("URL") & "</A></TD>" Response.Write "<TD ALIGN=RIGHT>" & rs.Fields.Item("URLCNT") & "人</TD>" Response.Write "</TR>" & Chr(13) & Chr(10) '次のレコードにポインタを移動する rs.MoveNext 'これを忘れると悲惨なことに、、、 'カウンタを増やす nCNT = nCNT + 1 Loop Response.Write "</TABLE>" 'テーブルは終わりです '開いていたレコードセットを閉じる rs.Close 'データベースも閉じようよ db.Close 'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど) Set db = Nothing %> <hr> <FORM ACTION="test087-1.asp" METHOD="GET"> 絞り込む検索条件を入れて、再検索ボタンを押してください。<br> 検索条件:<INPUT TYPE="TEXT" NAME="q" VALUE="<%=qqq%>"> <INPUT TYPE="submit" VALUE="再検索"><br> ※例)pc auto drink 500yenなどなど、URLの一部を入力<br> </FORM> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test087-1.asp?q=pc← 実行する
↑コードの三流解説は、
三流君ASP:ADO SQL Like演算子で部分検索する
を見て、笑ってやってください。
ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・