webForumDet fria alternativet

Ta fram lista från databas

ASP

11 svar · 331 visningar · startad av Mav

Medlem sedan juni 2000117 inlägg
Frågan#1

Hej!
Är inte så super haj på asp så jag hoppas ngn kan hjälpa till.

Så här är tanken: Man loggar in med användarnamn och lösen. Man kommer då till en sida där jag vill få upp en lista på alla projekt som finns under mitt kundnr. Man ska sedan kunna klicka sig vidare för att läsa mer om resp. projekt.
Jag har kommit så långt att jag loggar in men får bara upp det första projektet, tyvärr inte alla som jag skulle vilja...

Här är koden

<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=d:\kampanjlogg.mdb"
SQL = "SELECT * FROM logg Where Kundnr = '" & Request.Form("kundnr") & "'"
rs.OPEN SQL, fritid

If RS.EOF Then
Response.Redirect("../feluser.asp") 
End If

If NOT rs("Password")=Request.Form("password") Then
Response.Redirect("../felpass.asp") 
End If
%>
.....
<a href=kampanjinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
.....
Medlem sedan juni 20003 076 inlägg
#2

Har du mer kod där du skrivit ...?

.....
<a href=kampanjinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
.....

För att se fler så lär en loop finnas på sidan, typ:

While Not rs.eof
response.write "<a href=""kampanjinfo.asp?ID=" & rs("ID") & """>" & rs("Kampanjid") & "</a>"
rs.MoveNext
Wend
Medlem sedan feb. 200112 078 inlägg
#3

Eftersom din kod inte verkar vara fullständig, förutsätter jag att du inte har med detta:

<% do until rs.eof %>
<a href=kampanjinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<% rs.movenext
loop
%>
Medlem sedan juni 2000117 inlägg
#4

Tack! Precis så jag ville ha det, skall nu krångla till det lite :)
Har ett fält i databasen som heter "trk". Jag vill även här få upp en lista på dem men bara om det står "Ja" i "trk" fältet. Alltså behövs det en "if" sats ngnstans...
Har testat denna men får inte upp ngt

<%
If trk = Ja Then
do until rs.eof %>
<a href=trkinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<% rs.movenext
loop
End If
%>
Medlem sedan juni 200032 967 inlägg
#5

Det fixar du enklast i din SQL-fråga:

SQL = "SELECT * FROM logg Where Kundnr = '" & Request.Form("kundnr") & "' [b]AND trk = 'Ja'[/b]"

Men, om fältet trk är av typen Ja/Nej, så ska det se ut så här i stället:

SQL = "SELECT * FROM logg Where Kundnr = '" & Request.Form("kundnr") & "' [b]AND trk = True[/b]"

Mvh,

Medlem sedan juni 2000117 inlägg
#6

Tack men det fungerar inte eftersom jag har andra saker jag ska visa som har trk = nej.
Så här ser hela koden på sidan ut, har hoppat över html delen...

Här är SQL frågan...
<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=d:\kampanjlogg.mdb"
SQL = "SELECT * FROM logg Where Kundnr = '" & Request.Form("kundnr") & "'"
rs.OPEN SQL, fritid

If RS.EOF Then
Response.Redirect("../feluser.asp") 
End If

If NOT rs("Password")=Request.Form("password") Then
Response.Redirect("../felpass.asp") 
End If
%>
............
Här listar jag alla poster som finns på mitt kundnr....
<% do until rs.eof %>
<a href=infokampanj.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>, Trk: <%=rs("trk")%>
<br>
<% rs.movenext
loop
%>
............
Här vill jag då lista de som har trk = ja...
<%
If trk = Ja Then
do until rs.eof %>
<a href=trackerinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<% rs.movenext
loop
End If
%>
Medlem sedan juni 200032 967 inlägg
#7

Ok, då förstår jag. Jag trodde du endast hade den koden du visade.

Du kör en rs.movefirst innan du börjar loopa igenom ditt recordset igen?

Vilken datatyp är fältet i tabellen? Är det text eller är det av Ja/Nej-typ?

Om det är text:

<%
do until rs.eof 
If rs("trk") = "Ja" Then 
%>
<a href=trackerinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<%
End If
rs.movenext
loop
%>

Om det är Ja/nej:

<%
do until rs.eof 
If CBool(rs("trk")) Then 
%>
<a href=trackerinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<%
End If
rs.movenext
loop
%>

Mvh,

Medlem sedan juni 2000117 inlägg
#8

Har provat precis som du skrev (textvarianten) men då listas inget trots att det finns "Ja" på flera poster i databasen. Har dubbelkollat den så att jag inte skrivit fel men allt är ok.
Vad kan det bero på att det inte listas?

Medlem sedan juni 200032 967 inlägg
#9

Posta hela koden, från det att du öppnar recordsetet tills dess att du stänger det.

Mvh,

Medlem sedan juni 2000117 inlägg
#10

Ok,

<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=d:\kampanjlogg.mdb"
SQL = "SELECT * FROM logg Where Kundnr = '" & Request.Form("kundnr") & "'"
rs.OPEN SQL, fritid

If RS.EOF Then
Response.Redirect("../feluser.asp") 
End If

If NOT rs("Password")=Request.Form("password") Then
Response.Redirect("../felpass.asp") 
End If
%>
<html>
<body>
<b><%=rs("Kundnamn")%></b>
<br>
<br>
<% do until rs.eof %>
<a href=infokampanj.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>, Trk: <%=rs("trk")%> 
<br>
<% rs.movenext
loop
%>
<br>
<br>
<%
do until rs.eof 
If rs("trk") = "Ja" Then 
%>
<a href=trkinfo.asp?ID=<%=rs("ID")%>><%=rs("Kampanjid")%></a>
<%
End If
rs.movenext
loop
%>
</body>
</html>
Medlem sedan juni 200032 967 inlägg
#11

@nders skrev:

Du kör en rs.movefirst innan du börjar loopa igenom ditt recordset igen?

Alltså: Du måste göra en rs.movefirst innan du kan loopa igenom ditt recordset om du ska göra det en andra gång.

Medlem sedan juni 2000117 inlägg
#12

Tusen tack!!!
Det fattade inte jag...

283 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)