HEJ!
Alldeles för mycket kod för mig att sätta mig in i, men varför hämtar du personer som du inte ska skriva ut?
Vore det inte enklare att sila bort dem redan i frågan?
11 svar · 296 visningar · startad av Asa
Har en sida där jag listar alla rekryteringar. Man hämtar först alla medlemmar från databasen och sen ska den räkna ihop hur många som har värvats. Om antalet blir mer än 0 ska personen inte skrivas ut och är det mer än 0 ska det skrivas ut.
Nu har jag problem att få det att funka. Med denna kod så tror ju koden att den ska räkna alla poster och dela de på sidor men de tär ju inte så jag vill ha det.
Jag vill ha så att bara de som har mer än 0 ska räknas ihop och sen dela upp dom på flera sidor! Nån som kan hjälpa till?!
Koden för sidan:
<%Set RS = Server.CreateObject("ADODB.Recordset")
Sidan = Request.QueryString("sida")
If Sidan = "" then
sida = 1
Else
sida = Sidan
End If
RS.CursorLocation = 3
RS.CacheSize = PSUSERS
SQL = "Select * From users Order By anvnamn"
RS.Open SQL, Conn%>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td valign="top" style="border-bottom: 1px solid <%=LINJE%>"><font size="2"><b>Alla rekryteringar</b></font></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2" align="center">
<%If RS.EOF Then%>
<tr>
<td colspan="3">Ingen har rekryterat!</td>
</tr>
<%Else%>
<tr bgcolor="<%=BG%>">
<td width="50%"><b>Namn</b></td>
<td width="15%" align="center"><b>Rekryterat</b></td>
<td width="20%" align="center"><b>Rekryt m VIP</b></td>
<td width="15%" align="center"><b>Ratio</b></td>
</tr>
<%RS.MoveFirst
RS.PageSize = PSUSERS
RS.AbsolutePage = sida
Sidor = RS.PageCount
Y = 0
Do While Not RS.EOF And Y < RS.PageSize
If y Mod 2 = 0 then
color = "#F2F2F2"
Else
color = ""
End If
birthdate= CDate(RS("ar")&"-"&RS("man")&"-"&RS("dag"))
Set Antal=Conn.Execute("Select Count(*) as antal From users Where sponsor='" & RS("anvnamn") & "'")
If Antal("antal") > 0 Then
Dim Antal2
Set Antal2=Conn.Execute("Select Count(*) as antal2 From users Where sponsor='" & RS("anvnamn") & "' and vip=1")%>
<tr height="24">
<td bgcolor="<%=color%>" style="border-bottom: 1px solid #cccccc">
<a href="rekryt.asp?id=<%=RS("userid")%>"><b>VISA</b></a> | <b>
<%If RS("status") = "1" Then%>
<img src="gfx/online.gif" alt="Online">
<%Else%>
<img src="gfx/offline.gif" alt="Offline">
<%End If%>
<a href="chippin.asp?id=<%=RS("userid")%>"><%=Server.HTMLEncode(RS("anvnamn"))%></a></b>
<%If RS("kon") = 1 Then%>F<%Else%>P<%End If%><%=Birth(birthdate)%>
</td>
<td bgcolor="<%=color%>" style="border-bottom: 1px solid #cccccc" align="center"><%=Antal("antal")%> st</td>
<td bgcolor="<%=color%>" style="border-bottom: 1px solid #cccccc" align="center"><%=Antal2("antal2")%> st</td>
<td bgcolor="<%=color%>" style="border-bottom: 1px solid #cccccc" align="center"><%=Round((Antal2("antal2")/Antal("antal")) * 100,0)%> % är VIP</td>
</tr>
<%Antal2.Close
Set Antal2=Nothing
End If
y=y+1
Antal.Close
Set Antal=Nothing
RS.MoveNext
Loop
If Sidor > 1 Then%>
<tr>
<td width="50%">
<%If (Int(sida)) <> 1 Then%>
<a href="rekrytering.asp?sida=<%=(Int(sida)-1)%>"><< <b>Bakåt</b></a>
<%Else%>
<%End If%>
</td>
<td width="50%" colspan="3" align="right">
<%If (Int(sida)) <> (Int(Sidor)) Then%>
<a href="rekrytering.asp?sida=<%=(Int(sida)+1)%>"><b>Framåt</b> >></a>
<%Else%>
<%End If%>
</td>
</tr>
<%End If
End If%>
</table>
<%RS.Close
Set RS=Nothing%>
HEJ!
Alldeles för mycket kod för mig att sätta mig in i, men varför hämtar du personer som du inte ska skriva ut?
Vore det inte enklare att sila bort dem redan i frågan?
Har frågat om hur jag ska slå ihop de 3 sqlérna och fick detta som svar. Kolla tråden.
http://www.webforum.nu/showthread.php?s=&threadid=92820&forumid=53
Ingen som har nån idé???
Nähää, ingen verkar veta nåt! :( :(
Men kom igen nu då! Nån måste ju ha nåt bättre upplägg på hur man får till sidnavigeringen?!
HEJ!
Du verkar vara helt strandsatt :(
Sidnavigeringsexempel finns det en uppsjö av på internet, den jag använder kommer därifrån.
Sedan är jag inte klar över om du vill ha detta svar, eller om du vill ha svar på hur
Jag vill ha så att bara de som har mer än 0 ska räknas ihop...
ska lösas? Som du har fått svar på i en annan tråd tydligen.
Har inte fått det svar jag söker än. :(
Testa att ändra första SQL-frågan till något åt det här hållet:
SQL = "SELECT * FROM users u WHERE (SELECT COUNT(1) FROM users ru WHERE ru.sponsor = u.anvnamn) > 0 ORDER BY u.anvnamn"
Ska testa
Verkar ej fungera.
Blir det fel när frågan körs?
Eller fungerar frågan, men den rättar inte till ditt problem?