Страница: 1 |
Страница: 1 |
Вопрос: вопрос на счет работы с БД в ASP
Добавлено: 07.06.06 11:32
Автор вопроса: koket
У меня вот такой пример . Нармально работает сортировка и фильтрация выполняется отдельными функциями. Но вот вопрос:
Как сделать так что бы когда фильтруешь по какому нибудь значению и потом нажимаешь сортировку база сортировалась бы по результату фильтрации а не всей базы . Вото мой код:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1251"%>
<%Response.Expires=0%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Net wiever</title>
<style>
h3,p{cursor:pointer}
a{text-decoration:none; color:red}:hover{color:#FFFFFF}
.otstupl{ margin-left:43%}
</style>
<!-- Функция сортировки -->
<script language="javascript">
function SORT(word)
{
document.location="AutomatLogList.asp?Direction=sort&stroka="+word;
}
</script>
<!-- --------------------------------------------------------------- -->
<!-- Функция фильтрации -->
<script language="javascript">
function FILTR(x,y)
{
var z=escape(x)
document.location="AutomatLogList.asp?Direction=filtr&znach="+z+"&pole="+y;
}
</script>
</head>
<body bgcolor="#90ee90">
<%
Select Case Request.QueryString("Direction")
Case "" , "filtr"
Session("CurrentPage") = 1
Case "Next"
Session("CurrentPage") = Session("CurrentPage") + 1
Case "Previous"
Session("CurrentPage") = Session("CurrentPage") - 1
Case "sort"
Session("CurrentPage")=Session("CurrentPage")
End Select
%>
<%Const adOpenKeyset =1 %>
<%
data_sort=Request.QueryString("stroka") 'поле по каторому сортируем
znach_filtr=Request.QueryString("znach") 'значения поля по которому производится фильтрация
pole_filtr=Request.QueryString("pole") 'имя поля учавствующее в процедуре фильтрации
Dim URL
URL=Request.ServerVariables("QUERY_STRING")
%>
<%
Dim objConnection
Dim objRecordset
'Создаем объект Connection
Set objConnection=Server.CreateObject("ADODB.Connection")
'Создаем объект Recordset
Set objRecordset=Server.CreateObject("ADODB.Recordset")
objRecordset.PageSize = 50
'Открываем подсоединение к источнику данных
'objConnection.Open "MyAccessBASE", "koket", "prikol"
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\www\net_wiever\base.mdb"
'Выполняем запрос SQL
Select Case URL
Case "" , "Direction=Next&stroka=&znach=&pole=" , "Direction=Previous&stroka=&znach=&pole="
objRecordset.Open "SELECT * from AutomatLog ORDER BY id DESC", objConnection , adOpenKeyset
Response.Write("<b><font color=black size=4>")
Case "Direction=sort&stroka="&data_sort , "Direction=Next&stroka="&data_sort&"&znach=&pole=" , "Direction=Previous&stroka="&data_sort&"&znach=&pole="
objRecordset.Open "SELECT * from AutomatLog ORDER BY "&data_sort , objConnection , adOpenKeyset
'Response.Write("<font color=black size=4><b>База отсортирована по полю<b></font><b><font color=red size=4> "&data_sort&"</font>")
Response.Write("<b><font color=black size=4>")
Case "Direction=filtr&znach="&znach_filtr&"&pole="&pole_filtr, "Direction=Next&stroka=&znach="&znach_filtr&"&pole="&pole_filtr , "Direction=Previous&stroka=&znach="&znach_filtr&"&pole="&pole_filtr
objRecordset.Open "SELECT * FROM AutomatLog WHERE "+pole_filtr+"="+"'"+znach_filtr+"'" , objConnection , adOpenKeyset
Response.Write("<b><font color=black size=4>")
End Select
%>
<%objRecordset.AbsolutePage = CLng(Session("CurrentPage"))%>
<pre class="otstupl">
<font color="#FF0000" size="+3"><b><%=Session("CurrentPage")%>-ая страница из <%=objRecordset.PageCount%></b></font>
</pre>
<% if CLng(Session("CurrentPage")) > 1 Then %>
<A href="AutomatLogList.asp?Direction=Previous&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>"><Предыдущая страница---</A>
<%End If%>
<% if CLng(Session("CurrentPage")) < objRecordset.PageCount Then %>
<A href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница ></A>
<%End If%>
<br><br>
<table id="tab" border="1" width="100%" align="center">
<tr>
<th> <h3 onClick="SORT('DateTime')">Дата и время</th>
<th> <h3 onClick="SORT('Automat')">Номер автомата</th>
<th> <h3 onClick="SORT('Sec')">Sec</th>
<th> <h3 onClick="SORT('Phone')">Номер телефона</th>
<th> <h3>Сумма</th>
<th> <h3 onClick="SORT('Operation')">Оператор</th>
<th> <h3 onClick="SORT('PA')">PA</th>
<th> <h3>DEMO</th>
<th> <h3>Результат</th>
<th> <h3>Res</th>
</tr>
<!-- --------------------------------------------------------------------------------------- -->
<%
i=1
Do while (Not objRecordset.eof) AND i <= objRecordset.Pagesize
%>
<!-- --------------------------------------------------------------------------------------- -->
<tr>
<td align="center">
<p><%=objRecordset("DateTime")%></p>
</td>
<td align="center">
<p id="Automat" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Automat")%></p>
</td>
<td align="center">
<p><%=objRecordset("Sec")%></p>
</td>
<td align="center">
<p id="Phone" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Phone")%></p>
</td>
<td align="center">
<p><%=objRecordset("Sum")%></p>
</td>
<td align="center">
<p id="Operation" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Operation")%></p>
</td>
<td align="center">
<p id="PA" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("PA")%></p>
</td>
<td align="center">
<p id="DEMO" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("DEMO")%></p>
</td>
<td align="center">
<p><%=objRecordset("Result")%></p>
</td>
<td align="center">
<p><%=objRecordset("Res")%></p>
</td>
</tr>
<!-- --------------------------------------------------------------------------------------- -->
<%
objRecordset.MoveNext
i=i+1
Loop
%>
<!-- --------------------------------------------------------------------------------------- -->
</table>
<br>
<% if CLng(Session("CurrentPage")) > 1 Then %>
<A href="AutomatLogList.asp?Direction=Previous&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>"><Предыдущая страница---</A>
<%End If%>
<% if CLng(Session("CurrentPage")) < objRecordset.PageCount Then %>
<A href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница ></A>
<%End If%>
<%
objRecordset.Close
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
%>
</body>
</html>
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
koket
Вопросов: 1
Ответов: 1
Профиль | | #1
Добавлено: 07.06.06 11:35
Смотрите вот этот код тот что выше не правильный
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1251"%>
<%Response.Expires=0%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Net wiever</title>
<style>
h3,td{cursor:pointer}
a{text-decoration:none; color:red}:hover{color:#FFFFFF}
.otstup_l{ margin-left:43%}
.otstup_r{ margin-right:10%}
</style>
<!-- Функция сброса базы -->
<!-- --------------------------------------------------------------- -->
<script language="javascript">
function sbros()
{
document.location="AutomatLogList.asp";
}
</script>
<!-- Функция сортировки -->
<!-- --------------------------------------------------------------- -->
<script language="javascript">
function SORT(word,n)
{
document.location="AutomatLogList.asp?stroka="+word+"&name="+n;
}
</script>
<!-- --------------------------------------------------------------- -->
<!-- Функция фильтрации -->
<script language="javascript">
function FILTR(x,y)
{
var z=escape(x)
document.location="AutomatLogList.asp?znach="+z+"&pole="+y;
}
</script>
</head>
<body bgcolor="#90ee90">
<%
Select Case Request.QueryString("irection"
Case ""
Session("CurrentPage" = 1
Case "Next"
Session("CurrentPage" = Session("CurrentPage" + 1
Case "Previous"
Session("CurrentPage" = Session("CurrentPage" - 1
End Select
%>
<%Const adOpenKeyset =1 %>
<%
name=Request.QueryString("name"
data_sort=Request.QueryString("stroka" 'поле по каторому сортируем
znach_filtr=Request.QueryString("znach" 'значения поля по которому производится фильтрация
pole_filtr=Request.QueryString("pole" 'имя поля учавствующее в процедуре фильтрации
%>
<%
Dim objConnection
Dim objRecordset
'Создаем объект Connection
Set objConnection=Server.CreateObject("ADODB.Connection"
'Создаем объект Recordset
Set objRecordset=Server.CreateObject("ADODB.Recordset"
objRecordset.PageSize = 50
'Открываем подсоединение к источнику данных
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0ata Source=C:\www\net_wiever\base.mdb"
%>
<%
'Выполняем запрос SQL
if data_sort <> empty then
objRecordset.Open "SELECT * from AutomatLog ORDER BY "&data_sort , objConnection , adOpenKeyset
str="База отсортирована по полю "
Response.Write("<b><font color=black size=4>"
elseif znach_filtr <> empty and pole_filtr <> empty then
objRecordset.Open "SELECT * FROM AutomatLog WHERE "+pole_filtr+"="+"'"+znach_filtr+"'" , objConnection , adOpenKeyset
Response.Write("<b><font color=black size=4>"
else
objRecordset.Open "SELECT * from AutomatLog ORDER BY id DESC", objConnection , adOpenKeyset
Response.Write("<b><font color=black size=4>"
end if
%>
<%objRecordset.AbsolutePage = CLng(Session("CurrentPage")%>
<table border=0 width="100%">
<tr>
<td align="right"><font color="#FF0000" size="+2"><b><%=Session("CurrentPage"%>-ая страница из <%=objRecordset.PageCount%></b></font></td>
<td align="right" width="42%">
<%Response.Write("<font color=black size=4><b>"&str&"<b></font><b><font color=red size=4> "&name&"</font>"%>
</td>
</tr>
<table border="0" width="100%">
<tr>
<td>
<% if CLng(Session("CurrentPage") > 1 Then %>
<A href="AutomatLogList.asp?Direction=Previous&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>"><<</A>
<%End If%>
<% if CLng(Session("CurrentPage") < objRecordset.PageCount Then %>
<A class="otstup_r" href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">>></A>
<%End If%>
</td>
<td width="5%"><input type="Button" value="сброс" onclick="sbros()"></td>
</tr>
</table>
<table cellpadding="5" id="tab" border="1" width="100%" align="center">
<tr>
<th> <h3>id</th>
<th> <h3 onClick="SORT('DateTime',this.innerHTML)">Дата и время</th>
<th> <h3 onClick="SORT('Automat',this.innerHTML)">Номер автомата</th>
<th> <h3 onClick="SORT('Sec',this.innerHTML)">Sec</th>
<th> <h3 onClick="SORT('Phone',this.innerHTML)">Номер телефона</th>
<th> <h3>Сумма</th>
<th> <h3 onClick="SORT('Operation',this.innerHTML)">Операция</th>
<th> <h3 onClick="SORT('PA',this.innerHTML)">PA</th>
<th> <h3>EMO</th>
<th> <h3>Результат</th>
<th> <h3>Res</th>
</tr>
<!-- --------------------------------------------------------------------------------------- -->
<%
i=1
Do while (Not objRecordset.eof) AND i <= objRecordset.Pagesize
%>
<!-- --------------------------------------------------------------------------------------- -->
<tr>
<td align="center">
<font><%=objRecordset("id"%></font>
</td>
<td align="center">
<font ><%=objRecordset("ateTime"%></font>
</td>
<td align="center">
<font id="Automat" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Automat"%></font>
</td>
<td align="center">
<font ><%=objRecordset("Sec"%></font>
</td>
<td align="center">
<font id="Phone" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Phone"%></font>
</td>
<td align="center">
<font ><%=objRecordset("Sum"%></font>
</td>
<td align="center">
<font id="Operation" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Operation"%></font>
</td>
<td align="center">
<font id="PA" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("PA"%></font>
</td>
<td align="center">
<font id="EMO" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("EMO"%></font>
</td>
<td align="center">
<font ><%=objRecordset("Result"%></font>
</td>
<td align="center">
<font ><%=objRecordset("Res"%></font>
</td>
</tr>
<!-- --------------------------------------------------------------------------------------- -->
<%
objRecordset.MoveNext
i=i+1
Loop
%>
<!-- --------------------------------------------------------------------------------------- -->
</table>
<br>
<% if CLng(Session("CurrentPage") > 1 Then %>
<A href="AutomatLogList.asp?Direction=Previous&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>"><Предыдущая страница---</A>
<%End If%>
<% if CLng(Session("CurrentPage") < objRecordset.PageCount Then %>
<A href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница ></A>
<%End If%>
<%
objRecordset.Close
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
%>
</body>
</html>
Номер ответа: 2
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #2
Добавлено: 07.06.06 11:59
А можно с комментариями? Ни хрена не понятно.