Håller på med en sökfunktion på en sida. Där man skall söka efter medlemmar. Allt fungerar bra för utom att när det inte finns någon medlem som överänsstämmer med vad den som söker sökt på. Då vill jag nämligen att "Inga medlemmar funna!" skall skrivas ut. Du verkar sakna en MoveNext och Loop Hej! Har löst det.Om inga träffar vid sökning skall det skrivas ut - HUR?
Som det är nu så skrivs inget alls ut.
Detta trots att jag använder mig av:
<code><%
if RecSet.EOF or RecSet.BOF then
%></code>
Nedan är nog tillräckligt mycket av koden så att någon nog skall begripa vad det är som är fel:
<code><%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={MySQL};DATABASE=XXXXXXXX;UID=XXXXXXXX;PWD=XXXXXXXX;SERVER=XXXXXXXX"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Dim strSQL
Dim strWhere
If sortera = "poang" Then
If Len(strWhere) > 0 Then
strSQL = "SELECT medlemmar.id, medlemmar.username, medlemmar.kon, medlemmar.pnr, medlemmar.status, medlemmar.poang, medlemmar.gb, medlemmar.stad, stad.stad FROM medlemmar, stad WHERE " & Mid(strWhere, 6) & " AND stad.id=medlemmar.stad AND NOT medlemmar.poang=0 Order By medlemmar.poang DESC LIMIT 0, 80;"
Else
strSQL = "SELECT medlemmar.id, medlemmar.username, medlemmar.kon, medlemmar.pnr, medlemmar.status, medlemmar.poang, medlemmar.gb, medlemmar.stad, stad.stad FROM medlemmar, stad WHERE stad.id=medlemmar.stad AND NOT medlemmar.poang=0 Order By medlemmar.poang DESC LIMIT 0, 80;"
End If
End If
Else
strSQL = "SELECT 0 * FROM medlemmar"
End If
RecSet.Open strSQL, Connect, adOpenStatic, adLockOptimistic
end if
%>
<%
if RecSet.EOF or RecSet.BOF then
%>
<table width="100%"border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="fram34" align="center">Sökresultat</td>
</tr>
<tr>
<td class="vit" height="100%" valign="top" align="center"><b><br>
Inga medlemmar funna!</b></td>
</tr>
</table>
<% else %>
<%
DO Until RecSet.EOF OR X = 80
X=X+1
if X And 1 then
color="#ffffff"
Else
color="#eeeeee"
End if
%></code>Sv: Om inga träffar vid sökning skall det skrivas ut - HUR?
<code>
<%
DO Until RecSet.EOF OR X = 80
X=X+1
if X And 1 then
color="#ffffff"
Else
color="#eeeeee"
End if
RecSet.MoveNext '<==== här saknas en MoveNext
Loop '<==== här saknas en Loop
%>
</code>Sv: Om inga träffar vid sökning skall det skrivas ut - HUR?
Jag har gjort såhär:
<code>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={MySQL};DATABASE=XXXXXXXX;UID=XXXXXXXX;PWD=XXXXXXXX;SERVER=XXXXXXXX"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Dim strSQL
Dim strWhere
If sortera = "poang" Then
If Len(strWhere) > 0 Then
strSQL = "SELECT medlemmar.id, medlemmar.username, medlemmar.kon, medlemmar.pnr, medlemmar.status, medlemmar.poang, medlemmar.gb, medlemmar.stad, stad.stad FROM medlemmar, stad WHERE " & Mid(strWhere, 6) & " AND stad.id=medlemmar.stad AND NOT medlemmar.poang=0 Order By medlemmar.poang DESC LIMIT 0, 80;"
Else
strSQL = "SELECT medlemmar.id, medlemmar.username, medlemmar.kon, medlemmar.pnr, medlemmar.status, medlemmar.poang, medlemmar.gb, medlemmar.stad, stad.stad FROM medlemmar, stad WHERE stad.id=medlemmar.stad AND NOT medlemmar.poang=0 Order By medlemmar.poang DESC LIMIT 0, 80;"
End If
End If
Else
strSQL = "SELECT 0 * FROM medlemmar"
End If
RecSet.Open strSQL, Connect, adOpenStatic, adLockOptimistic
end if
if not RecSet.EOF then
DO Until RecSet.EOF OR X = 80
X=X+1
if X And 1 then
color="#ffffff"
Else
color="#eeeeee"
End if
RecSet.MoveNext
Loop
RecSet.Close
set RecSet = Nothing
else
%>
<table width="100%"border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="fram34" align="center">Sökresultat</td>
</tr>
<tr>
<td class="vit" height="100%" valign="top" align="center"><br>
Inga medlemmar funna!</td>
</tr>
</table>
<%End if %>
</code>
Man kan alltså använda RecSet.EOF för att se om det är True eller False, är det True, så har sökningen gått igenom hela recordet utan att hitta ngt och är EndOfFile, då finns det ingen träff.
Häpp!
//BjörnSv: Om inga träffar vid sökning skall det skrivas ut - HUR?
Hade inte med hela koden för att jag trodde det skulle se så mycket ut på något sätt. Detta gjorde att jag inte kunde använda mig av det ni skrev. Men tack för svaren!