学習目的:データベース2(クエリレコード)の基本操作を学ぶ
4日目はこんなプログラムです。
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={Microsoft アクセス ドライバー (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="ゲストブックから * を選択"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
クエリするのはすべてのレコードですが、レコードを変更または削除する場合、すべてのレコードをクエリすることは不可能なので、適切なレコードを取得する方法を学ぶ必要があります。まずステートメントを見てみましょう。
a=「張三」
b=111
exec="select * from guestbook where name='"+a+"'and tel="+b
whereの後に付けられるのは条件で、and、or、=、<=、>=、<、>の意味は誰でも知っていると思います。この文の意味は、名前が Zhang San、電話番号が 111 のレコードを検索することです。もう 1 つのポイントは、フィールドに文字列が含まれているかどうかを検索したい場合は、次のように記述できることです。 where instr(name,a) つまり、名前に文字列 a が含まれる人 (Zhang San) を検索します。
ここでの a と b は定数です。 a と b をフォームによって送信された変数にすることで、検索を行うことができます。
このコードを見て理解しましょう。
<form name="form1" method="post" action="example6.asp">
検索:<br>
名前 =
<input type="text" name="name">
アンテル=
<input type="text" name="電話">
<br>
<input type="submit" name="submit" value="submit">
<input type="reset" name="Submit2" value="Reset">
</form>
例6.asp:
<%
name=リクエスト.フォーム("名前")
tel=request.form("電話")
set conn=server.createobject("adodb.connection")
conn.open "driver={Microsoft アクセス ドライバー (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="select * from guestbook where name='"+name+"' および tel="+tel
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
<頭>
<title>無題のドキュメント</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellpacing="0" cellpadding="0">
<%
rs.eof ではないときに実行します
%><tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("メッセージ")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
ループ
%>
</テーブル>
</body>
</html>
今日は実際に where について話しました。また実験して instr() を実装しましょう。