webForumDet fria alternativet

Sortera upp Medlemmar i A-Ö?

ASP

18 svar · 673 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

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.
------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

[Redigerat av Qimen den 24 nov 2001]

Medlem sedan aug. 20013 824 inlägg
#2

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

Medlem sedan juni 20015 009 inlägg
#3

ja men då sortetar den väl bara ut användarnamnen, väll? jag vill ha bara dom som börjar på A.

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan dec. 200012 464 inlägg
#4

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") & "%'"

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 20015 009 inlägg
#5

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?

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

[Redigerat av Qimen den 24 nov 2001]

Medlem sedan dec. 200012 464 inlägg
#6

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.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 24 nov 2001]

Medlem sedan juni 20015 009 inlägg
#7

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.

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan dec. 200012 464 inlägg
#8

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.

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 20015 009 inlägg
#9

oki. får prova nu

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan juni 20015 009 inlägg
#10

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

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan juni 20015 009 inlägg
#11

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?

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

[Redigerat av Qimen den 24 nov 2001]

Medlem sedan juni 200032 967 inlägg
#12

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,

------------------
All your base are belong to me.

[Redigerat av @nders den 24 nov 2001]

Medlem sedan juni 20015 009 inlägg
#13

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.

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan juni 200032 967 inlägg
#14

Har du bytt ut SQL-frågan till den du fick av LarsG tidigare?

------------------
All your base are belong to me.

Medlem sedan juni 20015 009 inlägg
#15

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.

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

Medlem sedan juni 200032 967 inlägg
#16

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,

------------------
All your base are belong to me.

Medlem sedan juni 20015 009 inlägg
#17

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)

%>

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

[Redigerat av Qimen den 24 nov 2001]

Medlem sedan dec. 200012 464 inlägg
#18
Set RecSet = Connect.Execute (sql)

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 20015 009 inlägg
#19

Tack så hemskt mycket alla ni som hjälpt mig.

Nu funkar det.

------------------
Fem miljoner fluggor kan inte ha fel, ät bajs.

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)