Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 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%>">&lt;Предыдущая страница---</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%End If%>

<% if CLng(Session("CurrentPage")) < objRecordset.PageCount Then %>
<A  href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница &gt;</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">
&nbsp;<p><%=objRecordset("DateTime")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p id="Automat" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Automat")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p><%=objRecordset("Sec")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p id="Phone" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Phone")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p><%=objRecordset("Sum")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p id="Operation" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Operation")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p id="PA" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("PA")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p id="DEMO" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("DEMO")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p><%=objRecordset("Result")%></p>&nbsp;
</td>
<td align="center">
&nbsp;<p><%=objRecordset("Res")%></p>&nbsp;
</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%>">&lt;Предыдущая страница---</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%End If%>

<% if CLng(Session("CurrentPage")) < objRecordset.PageCount Then %>
<A  href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница &gt;</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(";Direction";)
  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.0;Data 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>";)%>&nbsp;
</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%>">&lt;&lt;</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%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%>">&gt;&gt;</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>;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">
&nbsp;<font><%=objRecordset("id";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font ><%=objRecordset(";DateTime";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font id="Automat" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Automat";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font ><%=objRecordset("Sec";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font id="Phone" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Phone";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font ><%=objRecordset("Sum";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font id="Operation" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("Operation";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font id="PA" onClick="FILTR(this.innerHTML,id)"><%=objRecordset("PA";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font id=";DEMO" onClick="FILTR(this.innerHTML,id)"><%=objRecordset(";DEMO";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font ><%=objRecordset("Result";)%></font>&nbsp;
</td>

<td align="center">
&nbsp;<font ><%=objRecordset("Res";)%></font>&nbsp;
</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%>">&lt;Предыдущая страница---</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%End If%>

<% if CLng(Session("CurrentPage";)) < objRecordset.PageCount Then %>
<A  href="AutomatLogList.asp?Direction=Next&stroka=<%=data_sort%>&znach=<%=znach_filtr%>&pole=<%=pole_filtr%>">---Следующая страница &gt;</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
А можно с комментариями? Ни хрена не понятно.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам