Varför kan inte denna funka?

ASP

19 svar · 290 visningar · startad av ReloadMaster

Medlem sedan aug. 2001239 inlägg
Trådstart#1

<%If "&svar4&" = "" Then

'Gör inget

Else
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If%>

Medlem sedan dec. 200012 464 inlägg
#2

Är svar4 en variabel? I så fall

<%If svar4 = "" Then
'Gör inget

Else
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If%>

annars så får du förklara lite mer.

Medlem sedan aug. 2001239 inlägg
#3

Tack det löste det...
Men hur ska jag skriva om det är ett databasfält...

Medlem sedan dec. 200012 464 inlägg
#4

Tja, det är ju ingen principiell skillnad

<%
sql = "select * from qs"
set recset = connect.execute("sql")
'
while not recset.eof
svar4 = recset("svar4")
if  svar4 = "" then
'gör inget
else
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If
recset.movenext
wend %>
Medlem sedan aug. 2001239 inlägg
#5

Vad är fel här?

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("votedb.mdb")

SQL = "SELECT top 1 * From rosta ORDER BY ID DESC"
Set RecSet = Connect.Execute(SQL)

%>
<%
s4 = RecSet("svar4")
If "&s4&" = "" Then
%>
<%
Else
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If%>
<%
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>

Medlem sedan dec. 200012 464 inlägg
#6
If "" & s4 <> "" Then
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If%>
Medlem sedan aug. 2001239 inlägg
#7

Tack, Lasse

men nu kommer del två...
Jag skulle vilja att den skriver ut % på rösterna också i denna kod(om det går...)

Medlem sedan mars 2001185 inlägg
#8

Ta antal svar på varje fråga och dela det med antal som har svarat, multiplicera med 100 och sätt ett %-tecken efter.

Medlem sedan dec. 200012 464 inlägg
#9

Du kan lägga in beräkningen direkt i sql-frågan:

sql = "select 100*svar1/(svar1+svar2+svar3+svar4) as p1,
100*svar2/(svar1+svar2+svar3+svar4) as p2,100*svar3/(svar1+svar2+svar3+svar4) as p3,100*svar1/(svar1+svar2+svar3+svar4) as p4 from rosta order by id desc"
set rs = connect.execute(sql)
while not rs.eof
for i = 1 to 4
response.write "rs("p"&i) & "% svar " _ 
& i & "<br>"
next
rs.movenext
wend
Medlem sedan aug. 2001239 inlägg
#10

Hur kan jag få in en i denna kod då:

<%
s4 = RecSet("svar4")
If s4 = "" Then
r4 = RecSet("roster4")
%>
Svar4: <% =r4%><br>
<%End If%>

Medlem sedan aug. 2001239 inlägg
#11

Jag får det inte att funka...

Medlem sedan dec. 200012 464 inlägg
#12

Det beror på hur din tabell ser ut
Om kolumnerna

roster1,
roster2,
roster3,
roster4

innehåller röster för de olika alternativen så får du % så här

<%
r1 = cdbl(recset("roster1"))
r2 = cdbl(recset("roster2"))
r3 = cdbl(recset("roster3"))
r4 = cdbl(recset("roster4"))
total = r1 + r2 + r3 + r4
s4 = recset("svar4")
if "" & s4 <> "" then %>
Svar4: <% =r4%><br> (<%= 100*(r4/total)%> %
<% end if %>
Medlem sedan aug. 2001239 inlägg
#13

Fan Lasse vad skulle jag göra om inte du vore här...
Men finns det något sätt att effektivitera denna kod efter som jag måste skriva ut den 10 gånger...

Medlem sedan aug. 2001239 inlägg
#14

Sedan undrar jag hur man slipper:
53,3333333333333% asså långa procent
om man vill att den visar bara ett heltal...

Medlem sedan okt. 20005 273 inlägg
#15
FormatNumber(ditt_tal, 0)

:)

Medlem sedan dec. 200012 464 inlägg
#16

Nu vet jag inte exakt hur du menar och hur din nuvarande kod ser ut men det går ju att skriva så här


for i = 1 to 10
s = recset("svar" & i)
if "" & s <> "" then 
'gör något med s %>

<% 
end if
next 
%>
Medlem sedan aug. 2001239 inlägg
#17

Går det att korta ner med %:en oxå?

<%
r1 = cdbl(recset("roster1"))
r2 = cdbl(recset("roster2"))
r3 = cdbl(recset("roster3"))
r4 = cdbl(recset("roster4"))
r5 = cdbl(recset("roster5"))
r6 = cdbl(recset("roster6"))
r7 = cdbl(recset("roster7"))
r8 = cdbl(recset("roster8"))
r9 = cdbl(recset("roster9"))
r10 = cdbl(recset("roster10"))
total = r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8 + r9 + r10
for i = 1 to 10
s = recset("svar" & i)
if "" & s <> "" then 
r = recset("roster" & i)
%> 
Svar<%=i%> : <% =r%>(<%= 100*(r/total)%>%)
<% 
end if
next 
%>
Medlem sedan dec. 200012 464 inlägg
#18
<%
total = 0
for i = 1 to 10
total = total + cdbl(recset("roster" & i))
next
for i = 1 to 10
s = recset("svar" & i)
if "" & s <> "" then 
r = recset("roster" & i)
%> 
Svar<%=i%> : <% =r%>(<%= 100*(r/total)%>%)
<% 
end if
next 
%>
Medlem sedan aug. 2001239 inlägg
#19

Tack IICAQ!

Medlem sedan aug. 2001239 inlägg
#20

Fan Lasse du är ju Kung!

261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)