byt ut
Addera = "Select * From members ORDER BY datum"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
mot
Addera = "Select * From members ORDER BY username"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
/ Mikul
18 svar · 699 visningar · startad av Qimen
Hej jag har en data bas med medlemmar och så kan varje medlem logga in och så vidare. Men så har jag en sida där man kan se alla medlemmar. Men där är ju inte så bra att ha alla på en sida (kan ju bli rätt långt). Det jag vill att när man väljer till ex. en bokstav "A" så kommer man in på den sidan och där listar scriptet upp alla medlemmar som börjar på A.
Förstår ni?
Ex. på hur jag får upp alla.
<%
If Session("login") <> "ok" Then
Session("meddelande") = "Du har blivit urloggad, var god logga in igen!"
Response.Redirect "default.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/members.mdb")&";pwd=000"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members ORDER BY datum"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
Det var databaskopplingen.
<%
X = 0
DO Until RecSet.EOF OR X = 50
X=X+1
%>
<tr>
<td width="55"><font size="1" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><a href="add_friend.asp?id2=<%=RecSet("id")%>" target="_self">lägg
till</a> </font></td>
<td width="100"><font size="1" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><a href="whois1.asp?checkid=<%=RecSet("id")%>"><%=RecSet("username")%></a></font></td>
<td width="100"><font size="1" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("kunskap")%></font></td>
<td><b><font size="1" <%if recset("status") = "offline" then%> color="#FF0000" <%else%>color="#339933" <%end if%>face="Verdana, Arial, Helvetica, sans-serif" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("status")%></b></font></td>
<td><font size="1" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></td>
</tr>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
och det var själva uppspelningen.
Hur gör jag detta? tacksam för kod exempel.
byt ut
Addera = "Select * From members ORDER BY datum"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
mot
Addera = "Select * From members ORDER BY username"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
/ Mikul
ja men då sortetar den väl bara ut användarnamnen, väll? jag vill ha bara dom som börjar på A.
Om du skickar vilken bokstav du vill söka på i querystring så kan du använda en fråga som ser ut så här
sql = "select * from members where username like '" & request.querystring("bokstav") & "%'"
Så att jag på varje sida gör jag en databaskoppling med det typ så här:
<%
If Session("login") <> "ok" Then
Session("meddelande") = "Du har blivit urloggad, var god logga in igen!"
Response.Redirect "default.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/members.mdb")&";pwd=000"
Set RecSet = Server.CreateObject("ADODB.Recordset")
sql = "select * from members where username like '" & request.querystring("A") & "%'"
%>
eller är det helt fel?
Njae, jag tänkte mer att du på söksidan lade upp det så här
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/members.mdb")&";pwd=000"
sql = "select distinct left(username,1) from members order by 1"
set rs = connect.execute(sql)
response.write "Sök medlemmar"
while not rs.eof
response.write "<a href='search.asp?bokstav=" & rs(0)& ">" & rs(0) & "</a>"
rs.movenext
wend
rs.close
connect.close
Då får du en länk för varje bokstav där det finns någon medlem.
Och sedan på search.asp så använder du den kod som jag skrev i förra inlägget.
Oki, det med länken fatta jag men med
sql = "select * from members where username like '" & request.querystring("bokstav") & "%'"
fatta jag inte riktigt hur jag skulle göra med.
Jag tänkte bara att du byter ut din select-sats
Addera = "Select * From members ORDER BY datum"
mot den jag skrev och sedan loopar du igenom resultatet på samma sätt.
oki. får prova nu
Men på Search.asp sidan så får jag detta felmedelande:
ADODB.Recordset fel '800a0bb9'
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
/inloggad/search.asp, rad 24
Då har jag gjort så här:
<%
If Session("login") <> "ok" Then
Session("meddelande") = "Du har blivit urloggad, var god logga in igen!"
Response.Redirect "../default.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../data/members.mdb")&";pwd=000"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From members ORDER BY username"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
Och sedan försökt loppa upp det. Var är det för fel?
Nu vet jag inte hur koden ser ut, men du kanske glömt att inkludera adovbs.inc och använder konstanter som deklareras där?
Annars: Hur ser koden ut?
Red: jag vet tydligen hur lite av koden ser ut. adovbs.inc?
Mvh,
Ohh, vad dum är, glömde den, men så fick jag det att funka men den visar ju alla medlemmar ändå när man tryckt på en bokstav.
Har du bytt ut SQL-frågan till den du fick av LarsG tidigare?
När man har valt en bokstav kommer man till Search.asp
På den sidan så har jag en databas koppling som ser ut så här
<%
If Session("login") <> "ok" Then
Session("meddelande") = "Du har blivit urloggad, var god logga in igen!"
Response.Redirect "default.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../data/members.mdb")&";pwd=000"
Set RecSet = Server.CreateObject("ADODB.Recordset")
sql = "select * from members where username like '" & request.querystring("bokstav") & "%'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
När jag har den så det upp att Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
Oki, då gör vi så här:
Ta bort denna:
Set RecSet = Server.CreateObject("ADODB.Recordset")
Byt ut:
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
mot:
Set RecSet = Connect.Execute (Addera)
Mvh,
Då får jag meddelande om att det inte angivits något kommando för kommandoobjektet.
<%
If Session("login") <> "ok" Then
Session("meddelande") = "Du har blivit urloggad, var god logga in igen!"
Response.Redirect "default.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../data/members.mdb")&";pwd=000"
sql = "select * from members where username like '" & request.querystring("bokstav") & "%'"
Set RecSet = Connect.Execute (Addera)
%>
Set RecSet = Connect.Execute (sql)