Like を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードはLike です。
<%@LANGUAGE=VBScript%>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>SQL SELECT WHERE句で Like演算子を使用して部分検索する</title>
</head>
<body>
<h1>SQL SELECT WHERE句で Like演算子を使用して部分検索する</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>
<%
qqq = Trim(Request.QueryString("q")) 'パラメータ
%>
<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>
| 最近発売の雑誌を紹介する
音楽・テレビ・娯楽系の雑誌です。息抜き・息抜き(って、休みすぎ?)
- ギター・マガジン 2008年 6月号 (CD付き): ギター・マガジン編集部
- リズム&ドラム・マガジン 2008年 6月号 : リズム&ドラム・マガジン編集部
- 上方芸能 2008年 06月号
- テアトロ 2008年 06月号
- jazz Life (ジャズライフ) 2008年 06月号
- CD でーた 2008年 06月号
- WHAT'S IN (ワッツ イン) ? 2008年 06月号
- サウンド&レコーディング・マガジン 2008年 6月号 : サウンド&レコーディング・マガジン編集部
- INROCK (イン・ロック) 2008年 06月号
|